Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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_Grep_Backreference - Fatal编程技术网

Regex 带反向引用的正则表达式

Regex 带反向引用的正则表达式,regex,grep,backreference,Regex,Grep,Backreference,我有一个很长的文件,其中有这样的行: `somecode [ somecode > somecode ] somecode > somecode > somecode` 我必须在括号之间搜索至少9+或-个字符的字符串,并且必须在括号旁边的两个“>”之间找到这些括号之间匹配的相同内容。。。 到目前为止,我想出了这个 `cat file | egrep -n '*\[.*([-+]{9,}).*\].*(>).*\1.*(>).*' > out.txt` 我

我有一个很长的文件,其中有这样的行:

`somecode [ somecode > somecode ] somecode > somecode > somecode` 
我必须在括号之间搜索至少9+或-个字符的字符串,并且必须在括号旁边的两个“>”之间找到这些括号之间匹配的相同内容。。。 到目前为止,我想出了这个

`cat file | egrep -n '*\[.*([-+]{9,}).*\].*(>).*\1.*(>).*' > out.txt`

我猜从你的正则表达式来看,这就是你想要做的

\[.*?([+-]{9,}).*?\].*?>.*?\1.*?>
如果你想得到完整的行使用这个

^.*?\[.*?([+-]{9,}).*?\].*?>.*?\1.*?>.*?$

我用来grep的代码不起作用。。。终端继续工作,但不提供任何信息output@Pieterjan你想要什么样的输出可能,它在你的regexp上工作非常努力,请参阅以获得可能的解释。可能是,我需要搜索的文件超过100000行@假的,我想知道正则表达式匹配的完整行。它只是括号中的一个9+字符串,必须在>'之间找到相同的一个,并且必须在找到该行的位置打印该行…在100000行上应用带反向引用的正则表达式不是一个好主意-我预计会出现内存不足错误、服务器停止或长时间运行。。。