我需要 javascript 正则表达式来匹配后面没有空格字符并且前面有 @ 的单词,如下所示:
@bug - 找到“@bug”,因为它后面没有空格
@bug 和我 - 什么也没找到,因为“@bug”后面有空格
@bug 和 @another - 仅找到“@another”
@bug和@another之类的东西-什么都找不到,因为两个词都跟着空格。
帮助?
添加:
字符串是从中获取的,FF 将它自己的标签放在它的末尾。虽然我基本上只需要最后一个以@开头的单词,但不能使用$(end-of-string)。
最佳答案
尝试 re = /@\w+\b(?! )/
。这会查找一个单词(确保它捕获整个单词)并使用否定前瞻来确保该单词后面没有空格。
使用上面的设置:
var re = /@\w+\b(?! )/, // etc etc
for ( var i=0; i<cases.length; i++ ) {
print( re2.exec(cases[i]) )
}
//prints
@bug
null
@another
null
这将不起作用的唯一方法是,如果您的单词以下划线结尾,并且您希望该标点符号成为单词的一部分:例如,“@bug 和 @another_ blahblah”将挑选出@another,因为
@another
后面没有跟空间。这似乎不太可能,但是如果您也想处理这种情况,则可以使用
/@\w+\b(?![\w ]/
,这将返回null
的@bug and @another_
和@bug_
的@another and @bug_
。关于Javascript 正则表达式 : find a word NOT followed by space character,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8584981/