我有这个正则表达式
\b(t[úu]s*)\b
我有这样的话:
tu (works) tú (doesn't work) tus (works) tús (works)
为什么我不能匹配tú
?
答案 0 :(得分:3)
如果正则表达式不匹配,则两个字符不同。
“u with acute”可以表示为单个字符ú
(U + 00FA)或将u
(U + 0075)与组合急性重音组合字符(U + 0301)给出类似的ú
。
您必须转换输入字符串或在正则表达式中包含两个变体,有关详细信息,请参阅http://www.regular-expressions.info/unicode.html。
答案 1 :(得分:2)
为什么表达式不匹配
tú
?
该表达式与tú
不匹配,因为\b
似乎无法将ú
识别为单词字符,因此在非单词字符之间使用时会失败
你可以使用这样的东西:
/(?<!\p{L})(t[úu]s*)(?!\p{L})/u
\p{L}
匹配unicode字母。