如何在正则表达式中包含重音符号?我想要检测从a-z
和äáàëéèíìöóòúùñç
这些字母,但是这个正则表达式不起作用:
$pattern = '/^([a-zäáàëéèíìöóòúùñç])/i';
如何在正则表达式中包含重音符号?我想要检测从a-z
和äáàëéèíìöóòúùñç
这些字母,但是这个正则表达式不起作用:
$pattern = '/^([a-zäáàëéèíìöóòúùñç])/i';
[\p{L}]
这在大多数正则表达式引擎中都可以使用。
你可以在这里阅读更多关于正则表达式中的Unicode的内容,例如:http://www.regular-expressions.info/unicode.html
cat test.php
<?php
preg_match('/\pL/u', 'é', $m);
print_r($m);
?>
php -q test.php
Array
(
[0] => é
)
/
,因為這些是php特定的)的情況下可以運行。所以基本上在這個頁面上進行如下測試:^([a-zäáàëéèíìöóòúùñç])
。/
),但你应该使用i
修饰符;它使匹配不区分大小写,在Ruby和PHP中都是如此。PHP正则表达式缺少的是u
修饰符,它会将正则表达式和源字符串视为UTF-8处理。 - Alan Moore在这里,您可以找到解决我的问题的方法:使用 preg_replace_callback 的正则表达式,看起来正则表达式应该是这样的:$pattern = '/(\p{L})(.+)/iu';