我有这个正则表达式
\b(t[úu]s*)\b
我有这句话:
你(作品) tú(不起作用) tus(作品) tús(作品)
为什么我不能匹配tú
?
如果正则表达式不匹配,则这两个字符不同。
“带有锐音的 u”可以表示为单个字符ú
(U+00FA) 或通过将u
(U+0075) 与组合的锐音重音字符 (U+0301) 组合来表示,这给出了类似的外观ú
。
您必须转换输入字符串或在正则表达式中包含这两种变体,有关详细信息,请参阅http://www.regular-expressions.info/unicode.html。
为什么那个表达式不匹配
tú
?
该表达式不匹配tú
,因为\b
似乎无法识别ú
为单词字符,因此在非单词字符之间使用时会失败。
你可以改用这样的东西:
/(?<!\p{L})(t[úu]s*)(?!\p{L})/u
\p{L}
匹配一个 unicode 字母。