我有这个正则表达式:
(\b)(emozioni|gioia|felicità)(\b)
在类似下面的字符串中:
emozioni emozioniamo felicità felicitàs
它应匹配第一个和第三个单词。相反,它匹配第一个和最后一个。我认为这是因为重音字符。我试过这个替代方案:
(\b)(emozioni|gioia|felicità\s)(\b)
但只有在其后有另一个单词时才匹配“felicità”。因此,只有在这种情况下才具体:
emozioni emozioniamo felicità felicitàs
而不是在另一个:
emozioni emozioniamo felicitàs felicità
我发现了一篇关于法语重音字符的文章(所以在单词的开头)here,我跟着第二个答案。如果有人知道更好的解决方案,那将非常受欢迎。
答案 0 :(得分:2)
单词边界\b
仅适用于\w
字符类中的字符,即[0-9a-zA-Z_]
,因此您不能将\b
放在重音字符之后à
。
您可以使用前瞻解决问题:
felicità(?=\s|$)
或更短:
felicità(?!\S)
(或\W
代替\s
建议使用@Sniffer,但您承担风险以匹配以下内容:felicitàà
)
答案 1 :(得分:1)