非ASCII情况下的正则表达式字边界

| 我的PHP脚本中有一个正则表达式,如下所示:
/(\\b$term|$term\\b)(?!([^<]+)?>)/iu
只要$ term前后都有单词边界且不在HTML标记内,则此匹配$ term中包含的单词。 但是,这不适用于非ASCII情况,例如俄语文本。有办法使它起作用吗? 我可以得到几乎一样好的结果
/(\\s$term|$term\\s)(?!([^<]+)?>)/iu
但这显然更受限制,并且由于此正则表达式用于突出显示搜索词,因此存在在突出显示中包含空格的问题。 我已经阅读了有关此问题的StackOverflow问题,但这无济于事-无法正常工作。在该示例中,捕获是相反的方式(当我需要捕获搜索词时,捕获搜索词之外的文本)。 有什么办法可以使这项工作吗?谢谢!     
已邀请:
您可以使用零宽度的超前/向后断言来断言所匹配的字符左右是否为非字母?     
正如UTS#18所要求的那样,肯定将“ 2”定义为在Unicode上能很好地工作。你在说什么呢?具体涉及哪些文本字符串?     

要回复问题请先登录注册