Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 grep中的正则表达式不考虑条件子句?_Regex_Grep - Fatal编程技术网

Regex grep中的正则表达式不考虑条件子句?

Regex grep中的正则表达式不考虑条件子句?,regex,grep,Regex,Grep,下面的正则表达式 (created|modified|renamed) mode 当给出这些输入时 created mode 123 created sfs abc aasdf foobar foo1\nfoo2 其中,只有最后一个grep(在“or”条件周围没有())返回结果 我在macOS和ubuntu上都试过 更新尝试使用grep-E echo-e'创建模式123\n创建sfs\n abc\n aasdf foobar\n foo1\nfoo2'| grep-e'(创建\|新文件

下面的正则表达式

 (created|modified|renamed) mode
当给出这些输入时

created mode 123 created sfs abc aasdf foobar foo1\nfoo2 其中,只有最后一个
grep
(在“or”条件周围没有())返回结果

我在
macOS
ubuntu
上都试过

更新尝试使用
grep-E

echo-e'创建模式123\n创建sfs\n abc\n aasdf foobar\n foo1\nfoo2'| grep-e'(创建\|新文件\|修改)模式'

没有结果

另一个更新我错过了@Barmar的一条评论:使用
-E
时需要取消管道的景观

echo-e'创建模式123\n创建sfs\n abc\n aasdf foobar\n foo1\nfoo2'| grep-e'(创建\|新文件\|修改)模式'

[正确]给出

 created mode 123

如果使用基本正则表达式,则必须转义
以及
|

echo -e 'created mode 123\n created sfs\n abc\n aasdf foobar\n foo1\nfoo2' | grep '\(created\|new\|modified\) mode'
或者,您可以将扩展regexp与
-E
一起使用,则不能转义其中任何一个

echo -e 'created mode 123\n created sfs\n abc\n aasdf foobar\n foo1\nfoo2' | grep -E '(created|new|modified) mode'

如果使用基本正则表达式,则必须转义
以及
|

echo -e 'created mode 123\n created sfs\n abc\n aasdf foobar\n foo1\nfoo2' | grep '\(created\|new\|modified\) mode'
或者,您可以将扩展regexp与
-E
一起使用,则不能转义其中任何一个

echo -e 'created mode 123\n created sfs\n abc\n aasdf foobar\n foo1\nfoo2' | grep -E '(created|new|modified) mode'

请在问题中添加示例输入(无描述、无图像、无链接)和该示例输入的所需输出(无注释)。示例输入以文本形式显示。输出也应清晰,但我将在任何情况下添加文本,使用
grep-E
且不转义
,或转义
@Barmar
grep-E
至少在macos上没有返回任何结果。我将把这个例子也添加到问题中。你读了我说的吗?如果你使用
-E
,你不会逃过管道。请将样本输入(没有描述,没有图像,没有链接)和你想要的输出添加到你的问题中(没有评论)。示例输入以文本显示。输出也应该清晰,但我将在任何情况下添加文本使用
grep-E
,不转义
|
,或转义
@Barmar
grep-E
至少在macos上没有返回任何结果。我将把这个例子也添加到问题中。你读过我说的吗?如果你使用
-E
,你不会逃脱管道。