JS正则表达式无法匹配À字符,如何修正以捕获目标词汇?
问题解决:正则无法捕获Unicode重音字符"À"的修复方案
问题原因
原正则表达式中的\b是ASCII单词边界,仅对[A-Za-z0-9_]这类ASCII单词字符生效。而À属于Unicode重音字符,不在ASCII单词字符范围内,因此它与前后空格之间无法触发\b的边界匹配,导致无法被捕获。
修改后的正则表达式
/(?<!\p{L})(?:A|AO|À|E|O)(?!\p{L})/gu
规则说明
(?<!\p{L}):负向后环视,确保匹配目标的前一个字符不是任意Unicode字母(?!\p{L}):负向前环视,确保匹配目标的后一个字符不是任意Unicode字母- 该规则可准确识别被非字母(如空格)包围的目标词汇,包括带重音的
À,同时不影响原有词汇的匹配。
内容的提问来源于stack exchange,提问作者VBobCat
相关产品推荐
相关产品推荐

