正则表达式在开头和结尾匹配单词和特殊字符

时间:2016-07-28 17:36:05

标签: regex

我看过另一个关于带有特殊字符的单词边界的话题,但我仍然无法解决我的问题。

我想匹配这个:

@_-amazingword_-

但不匹配:

@_-amazingword_--

是否有正则表达式?

请记住,这些单词可以放在文本的中间,例如:

This is an @_-amazingword_- everybody.

1 个答案:

答案 0 :(得分:3)

字边界对您没有帮助,因为字符@-都不是“字”字符。

相反,请使用环顾四周:

(?<=\s)@_-amazingword_-(?=\s)

看后面并向前看断言(但不匹配)前一个/下一个char是一个空格字符。

如果你想让它在输入的开始/结束时起作用,也可以在开始/结束时看看周围的匹配:

(?<=^|\s)@_-amazingword_-(?=\s|$)