正则表达式捕获单词/非单词和非单词/非单词边界

时间:2013-07-06 19:13:15

标签: regex

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

因此,例如,关键字为Hi,我希望它与Hi!!Hi Hi匹配,而不是HiHi。这可以通过Hi\b来完成。但如果关键字为Hi!,我希望它与Hi!HiHi!!匹配。使用Hi\b会导致不匹配。

任何方向都表示赞赏。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

或者只是使用字符组。

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