php 越南语字符中的正则表达式

js81xvg6  于 2023-02-21  发布在  PHP
关注(0)|答案(6)|浏览(610)

我有一个字符串,并希望删除任何字符不在任何情况下:

  • 不在此列表中:ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠ Ả Ấ Ầ Ẩ Ẫ Ậ Ắ Ằ Ẳ Ẵ Ặ Ẹ Ẻ Ẽ Ề Ề Ể ưăạ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ặ ẹ ẻ ẽ ề ề ể Ễ Ệ Ỉ Ị Ọ Ỏ Ố Ồ Ổ Ỗ Ộ Ớ Ờ Ở Ỡ Ợ Ụ Ủ Ứ Ừ ễ ệ ỉ ị ọ ỏ ố ồ ổ ỗ ộ ớ ờ ở ỡ ợ ụ ủ ứ ừ Ử Ữ Ự Ỳ ỴÝỶ Ỹ ử ữ ự ỳ ỵ ỷ ỹ
  • 不在[a-z 0-9 A-Z]中
  • 而不是:_和白色。

有谁能帮我在php中使用这个正则表达式吗?

rkue9o1l

rkue9o1l1#

$newtext = preg_replace('/[^a-z0-9A-Z_[:space:]ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂ ưăạảấầẩẫậắằẳẵặẹẻẽềềểỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹ]/u','',$text);
hec6srdp

hec6srdp2#

你可以试试,这是传递“ê,,,”与以下正则表达式:^[a-zA-Z_ÀÁÂÃÈÉÊẾÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêếìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂưăạảấầẩẫậắằẳẵặẹẻẽềềểỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹ\ ]+$

r6vfmomb

r6vfmomb3#

使用Js可以添加常量正则表达式= /^[^\u00C0-\u1EF9]+$/i;
正则表达式检验(“Vi t”)-〉假

o2gm4chl

o2gm4chl4#

请尝试以下正则表达式:

/[^a-z0-9A-Z_ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂưăạảấầẩẫậắằẳẵặẹẻẽềềểỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễếệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹ]/u

u modifier使PHP将模式字符串解释为UTF-8。
如果这不起作用,请尝试使用Unicode character properties(如\p{L})来描述字母,或使用escape sequence\x{1234}来描述单个Unicode字符或自定义字符范围:

/[^a-z0-9A-Z_\x{00C0}-\x{00FF}\x{1EA0}-\x{1EFF}]/u
5m1hhzi4

5m1hhzi45#

上述正则表达式缺少ế,并且ă重复。
正确越南语字符列表:àáãạảăắằẳẵặâấầẩẫậèéẹẻẽêềếểễệđìíĩỉịòóõọỏôốồổỗộơớờởỡợùúũụủưứừửữựỳỵỷỹýÀÁÃẠẢĂẮẰẲẴẶÂẤẦẨẪẬÈÉẸẺẼÊỀẾỂỄỆĐÌÍĨỈỊÒÓÕỌỎÔỐỒỔỖỘƠỚỜỞỠỢÙÚŨỤỦƯỨỪỬỮỰỲỴỶỸÝ
另外,在使用正则表达式测试字符串之前,请记住将其规范化为NFC形式(string.normalize('NFC'))。阅读更多here

4ngedf3f

4ngedf3f6#

请注意。越南语Unicode字符可能会“分解”为“combining characters“,其中一个代码点用于基本字符,一个或多个代码点用于附加变音符号,或者它们可能会“precomposed“分解为单个Unicode代码点。组合变音符号不会像预期的那样与正则表达式范围[]一起工作,因为无论它们与什么基本字符合并,您都将匹配它们。
旧版本的Unicode不包含完整的越南语预排版字符集,因此希望找到带有组合字符的越南语。您可以使用Unicode normalization form C,NFC将组合字符转换为预排版字符。

相关问题