正则表达式@something

时间:2016-03-03 14:22:43

标签: regex

我想要一个正则表达式来获取@something的文本,所以我尝试了:

/@(\w+)/ig

这是@josh和@ anne = @josh @anne match

问题是,我想忽略后面有空格的那些,在上面的例子中,忽略@josh并只显示@anne,因为@anne之后没有空格和@josh。

任何想法?

1 个答案:

答案 0 :(得分:2)

使用否定前瞻:

/@(\w+\b)(?! )/ig

单词边界使得匹配包括“整个单词”,否定前瞻禁止下一个字符为空格。

单词边界是必要的,因为没有,它会匹配@jos内的@josh and @anne

要使其与任何空格字符匹配,请使用

/@(\w+\b)(?!\s)/ig

(其中\s是'任何空格);要匹配任何非单词字符,你认为它需要这个

/@(\w+\b)(?!\w)/ig

但请记住,明确的\b已经这样做了,所以一个简单的

/@(\w+\b)/ig

就足够了。