我正在尝试从glossarizer插件中修改以下正则表达式(在javascript中)以使其不那么宽松。
var regex = new RegExp("(^s*|[^!])" + this.clean(term) + "\\s*|\\,$", "i");
它试图在术语和定义的 JSON 数组中检索术语的定义。
[{term: "black cat", definition: "a black cat"},
{term: "cat", definition: "meow"}]
现在,当我传入“cat”时,它与“black cat”匹配,但我不希望它匹配。我希望它匹配从字符串开头或逗号之后开始*/s
并以逗号或字符串结尾结尾的内容,以便可以传入多个定义。
*Match for cat:
'cat'
' Cat '
'cat, feline'
'feline, cat , cheetah'
*Not a match for cat:
'black cat'
'Catapult'
'!cat'
我尝试放置new RegExp("(^|^s*|[^!])" + this.clean(term) + "\\s*$|\\s*,", "i")
(添加管道,因此它应该是字符串或逗号和空格的开头,所以最后它将是空格,后跟逗号或字符串的结尾,但它没有达到预期的效果(使用 regex101 .com,但大多感到困惑)