Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex查找后跟空格、#、@或输入结尾的表达式_Regex - Fatal编程技术网

Regex查找后跟空格、#、@或输入结尾的表达式

Regex查找后跟空格、#、@或输入结尾的表达式,regex,Regex,我想查找word的所有实例(比如myword),并附加一个条件,即该单词后面有空格、@、#或是输入的结尾 输入字符串: “myword#myword mywordrick myword@myword” 我希望正则表达式能够匹配除了我的WordTrick之外的所有东西- myword# myword myword@ myword 我可以用myword[@#\s] 我原以为我的单词[@#;\s\z]能与所有4个单词相匹配,但我只得到3个 我尝试myword[\z]但没有找到匹配项 我尝试mywo

我想查找word的所有实例(比如myword),并附加一个条件,即该单词后面有空格、@、#或是输入的结尾

输入字符串:
“myword#myword mywordrick myword@myword”

我希望正则表达式能够匹配除了我的WordTrick之外的所有东西-

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

我原以为我的单词[@#;\s\z]能与所有4个单词相匹配,但我只得到3个

我尝试
myword[\z]
但没有找到匹配项 我尝试
myword\z
并得到1个匹配项

我认为[]中的\z不起作用,因为[]是基于字符的逻辑,而不是基于位置的逻辑

有没有办法使用一个正则表达式来匹配我感兴趣的表达式?我不想同时使用
myword[#@\s]
myword\z
,除非我真的必须这样做。

你的正则表达式是

myword(?:[@#\s]|$)
仅当字符串后面紧跟着
@
\s
$
时,它才与字符串
myword
以及符号匹配<代码>$表示行尾


\z
表示“字符串结束”,因此位于最后一行之后的点。对于“行尾”(每行),使用
$
。这将在第二个
myword
之后匹配空格。他也希望匹配空格。是吗?@AvinashRaj您正确地解释了问题,我正在等待能够接受答案。好的,我站着更正,但是@Maudicus从您的预期结果(我通过点击您的问题的编辑进行了检查)中不清楚您想要在输出中捕获
“myword”
,而不是
“myword”