正则表达式找到一个表达式后跟空格,#,@或输入结束

时间:2014-06-26 19:07:09

标签: regex

我想找到所有单词的实例(比如myword),附加条件是单词有空格,“@”,“#”后缀,或者是输入结束。

输入字符串:
"myword# myword mywordrick myword@ myword"

我希望正则表达式匹配除mywordtrick之外的所有内容 -

myword#
myword 
myword@
myword

我可以使用myword[@#\s]

与前3个匹配

我认为myword[@#\s\z]会与所有4匹配,但我只得到3

我尝试myword[\z]并且没有匹配 我尝试myword\z并获得1场比赛。

我认为\ _在[]内部不起作用,因为[]是基于字符的逻辑,而不是基于位置的逻辑。

有没有办法使用单个正则表达式来匹配我感兴趣的表达式?除非我真的需要,否则我不想同时使用myword[#@\s]myword\z

1 个答案:

答案 0 :(得分:3)

你的正则表达式是,

myword(?:[@#\s]|$)

仅当字符串myword#@\s$后面的符号匹配时才匹配。 $表示该行的结尾。

DEMO