Regex Linux正则表达式错误:";无与伦比的斜杠和大括号”;
我有一些字符串,其中包括:Regex Linux正则表达式错误:";无与伦比的斜杠和大括号”;,regex,linux,Regex,Linux,我有一些字符串,其中包括: 103120!WIFF SOFTBALL BAT I !25 !20 !01-JUN-90 103121!WIFF SOFTBALL BAT II !30 !24 !01-JUN-90 我需要为grep编写一个正则表达式,它以“bat”显示字符串,以90结尾 grep ‘^.*BAT((.*!)\{\1}))\{\3}90$' 出现错误:不匹配\{。 我已经测试了其中哪一个是不好的,但没有得到任何结果。错误与未经扫描的}有关。您已经尝试在POSIX BRE模式中
103120!WIFF SOFTBALL BAT I !25 !20 !01-JUN-90
103121!WIFF SOFTBALL BAT II !30 !24 !01-JUN-90
我需要为grep
编写一个正则表达式,它以“bat”显示字符串,以90结尾
grep ‘^.*BAT((.*!)\{\1}))\{\3}90$'
出现错误:不匹配\{
。
我已经测试了其中哪一个是不好的,但没有得到任何结果。错误与未经扫描的
}
有关。您已经尝试在POSIX BRE模式中使用区间量词,但是您没有逃过{
和}
然而,似乎您可以使用
grep 'BAT.*90$' file
见
这里的BAT.*90$
POSIX BRE模式匹配
-aBAT
子字符串BAT
-任何0+字符*
-90$
位于字符串末尾(此处的90
默认情况下按行操作)grep
由于使用了no
-o
选项,grep
将输出包含此模式的整行,不需要^.*.
部分。您的意思是grep'BAT.*90$”文件
?是的,我需要它。非常感谢,对于新手来说,很难习惯正则表达式。我不理解错误消息,但您有两个未替换的右大括号(}
),没有相应的未替换的左大括号,这使得正则表达式无效。