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