我正在尝试匹配以单词边界结尾的关键字。但是,关键字是动态的,可能以非单词字符结尾。是否可以匹配单词/非单词边界或非单词/非单词边界?
因此,例如关键字是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