【发布时间】:2012-09-27 16:44:09
【问题描述】:
测试 PHP 正则表达式引擎,我发现它只将 [0-9A-Za-z_] 视为单词字符。非 ASCII 语言的字母(例如希伯来语)与 [\w] 不匹配为单词字符。是否有任何 PHP 或 Perl 正则表达式转义序列可以匹配任何语言的字母?我可以为我希望使用的每个字母添加范围,但用户总是会用意想不到的语言给我们惊喜!
请注意,这不是用于安全过滤,而是用于标记文本。
【问题讨论】:
测试 PHP 正则表达式引擎,我发现它只将 [0-9A-Za-z_] 视为单词字符。非 ASCII 语言的字母(例如希伯来语)与 [\w] 不匹配为单词字符。是否有任何 PHP 或 Perl 正则表达式转义序列可以匹配任何语言的字母?我可以为我希望使用的每个字母添加范围,但用户总是会用意想不到的语言给我们惊喜!
请注意,这不是用于安全过滤,而是用于标记文本。
【问题讨论】:
试试[\pL_] - 请参阅参考资料
【讨论】:
u 修饰符才能让它工作。
试试\p{L}。它匹配来自任何语言的任何类型的字母。如果你不想使用字符集[]。
【讨论】: