0

我正在尝试匹配以单词边界结尾的关键字。但是,关键字是动态的,可能以非单词字符结尾。是否可以匹配单词/非单词边界或非单词/非单词边界?

因此,例如关键字是Hi,我希望它匹配Hi!!Hi Hi不匹配HiHi。这可以通过Hi\b. 但如果关键字是Hi!,我希望它也Hi!Hi匹配Hi!!。使用Hi\b结果不匹配。

任何方向表示赞赏。

4

1 回答 1

0

您可以捕获单词-非单词字符

>>> /[\w]+[\W]/.test('hi!')
true
>>> /[\w]+[\W]/.test('hihi')
false

或使用边界符号将字符更改为非单词:

>>> /[\w]+\b/.test('hi!')
true
>>> /[\w]+\b/.test('hihi')
false

或者干脆使用字符组。

请注意,边界符号是零长度值。有一个很棒的网站详细解释了这一切:Regex tutorials

于 2013-07-06T19:43:38.210 回答