【发布时间】:2019-07-02 06:28:17
【问题描述】:
我目前有一个与世界匹配的边界正则表达式
const trigger = 'foo1 foo2'
const rx = new RegExp(`\\b${trigger}\\b`, 'i');
return rx.test(text);
这符合以下情况:
foo1 foo2 <-- exact match
bar foo1 foo2 <-- end of sentence
foo1 foo2 bar <-- beginning of sentence
而不是
barfoo1 foo2
foo1 foo2bar
barfoo1 foo2bar
这正是我想要的标准字符串的行为
但是,当 trigger 变为 #foo 时,这不起作用,因为 # 对于字边界无效。
正则表达式由我的服务器控制,但触发器由用户控制。
仅当字符串以主题标签开头时才会出现问题,因此 foo1 #foo2 之类的内容仍然有效。我总是可以在开头去掉一个标签。
如何使正则表达式同时支持单词和主题标签?
【问题讨论】:
-
我达到了 70%,其中 % 打破了单词边界匹配
标签: javascript node.js regex regex-lookarounds