我应该如何在正则表达式中包含重音?我想检测来自a-z
和äáàëéèíìöóòúùñç
的信件,但这个正则表达式不起作用:
$pattern = '/^([a-zäáàëéèíìöóòúùñç])/i';
答案 0 :(得分:3)
怎么样:
cat test.php
<?php
preg_match('/\pL/u', 'é', $m);
print_r($m);
?>
php -q test.php
Array
(
[0] => é
)
答案 1 :(得分:2)
您可以尝试使用预定义的类来匹配所有字母,例如:
[\p{L}]
这适用于大多数正则表达式引擎。
您可以在此处阅读有关正则表达式中unicode的更多信息,例如:http://www.regular-expressions.info/unicode.html
答案 2 :(得分:1)
您可能会尝试将u
标记添加到正则表达式中(请参阅modifiers页面上的 PCRE_UTF8 )
答案 3 :(得分:0)
如果删除最后一个'i',我正在使用Rubular进行测试,如果没有它(并且没有/
,因为这些是特定于PHP的。)
所以基本上在这个页面中测试它:^([a-zäáàëéèíìöóòúùñç])
答案 4 :(得分:0)
在这里你可以找到我的问题的解决方案: Using of regex whith preg_replace_callback ,似乎正则表达式必须像:$ pattern ='/(\ p {L})(。+)/ iu';