我正在尝试匹配以字边界结尾的关键字。但是,关键字是动态的,可能以非单词字符结尾。是否可以匹配字/非字边界或非字/非字边界?
因此,例如,关键字为Hi
,我希望它与Hi!!
或Hi Hi
匹配,而不是HiHi
。这可以通过Hi\b
来完成。但如果关键字为Hi!
,我希望它与Hi!Hi
和Hi!!
匹配。使用Hi\b
会导致不匹配。
任何方向都表示赞赏。
答案 0 :(得分:0)
您可以捕获单词非单词字符
>>> /[\w]+[\W]/.test('hi!')
true
>>> /[\w]+[\W]/.test('hihi')
false
或使用边界符号将字符更改捕获为非单词:
>>> /[\w]+\b/.test('hi!')
true
>>> /[\w]+\b/.test('hihi')
false
或者只是使用字符组。
请注意,边界符号是零长度值。 有一个很棒的网站详细解释了所有内容:Regex tutorials