gpt4 book ai didi

php - 非 ASCII 情况下的正则表达式单词边界

转载 作者:行者123 更新时间:2023-12-05 05:28:57 28 4
gpt4 key购买 nike

我的 PHP 脚本中有一个正则表达式,如下所示:

/(\b$term|$term\b)(?!([^<]+)?>)/iu

这与 $term 中包含的单词匹配,只要前后有单词边界并且它不在 HTML 标记内即可。

但是,这在非 ASCII 情况下不起作用,例如俄语文本。有没有办法让它发挥作用?

我可以用

得到几乎一样好的结果
/(\s$term|$term\s)(?!([^<]+)?>)/iu

但这显然更受限制,并且由于此正则表达式是关于突出显示搜索词的,因此它存在突出显示中包含空格的问题。

我读过 this StackOverflow question about the problem ,但它没有帮助 - 无法正常工作。在那个例子中,捕获是相反的(当我需要捕获搜索词时,捕获搜索词之外的文本)。

有什么方法可以让它工作吗?谢谢!

最佳答案

你可以使用 zero-width lookahead/lookbehind assertions断言您要匹配的内容左右两侧的字符不是字母?

关于php - 非 ASCII 情况下的正则表达式单词边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667226/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com