正则表达式-PCRE(PHP)-单词边界(\b)和重音字符
在下面的示例中,为什么字母正则表达式-PCRE(PHP)-单词边界(\b)和重音字符,php,regex,utf-8,pcre,non-ascii-characters,Php,Regex,Utf 8,Pcre,Non Ascii Characters,在下面的示例中,为什么字母é算作单词边界匹配\b 模式:/\b(cum)\b/i 正文:e cumé 匹配不需要的“cum” 有可能克服这个问题吗?当您将u修饰符添加到正则表达式中时,它会起作用 /\b(cum)\b/iu 要处理unicode,请将\b替换为 /(?<=^|\PL)(cum)(?=\PL|$)/i /(?谢谢!愚蠢的我,应该更深入地研究修饰符。添加Unicode修饰符会使正则表达式将输入字符串视为Unicode。PS:低估了问题和解决方案。谢谢,但它似乎太复杂了。st
é
算作单词边界匹配\b
模式:/\b(cum)\b/i
正文:e cumé
匹配不需要的“cum”
有可能克服这个问题吗?当您将
u
修饰符添加到正则表达式中时,它会起作用
/\b(cum)\b/iu
要处理unicode,请将
\b
替换为
/(?<=^|\PL)(cum)(?=\PL|$)/i
/(?谢谢!愚蠢的我,应该更深入地研究修饰符。添加Unicode修饰符会使正则表达式将输入字符串视为Unicode。PS:低估了问题和解决方案。谢谢,但它似乎太复杂了。stema的回答更直截了当地解决了这个问题,因为问题是文本具有Unicode字符,但没有生成模式意识到这一点。