我似乎无法使用grep获取圆括号内的值。
echo "(this is a string)" | grep -Eo '[az ]*'
理想情况下,应该返回括号内的值,“这是一个astring”,而不是返回任何东西。 有谁知道这个解释?
是正则expression式的gcc 4.8或更早的车?
.htaccess重写规则,以防止caching的CSS,JS,图像文件。
Linuxfind正则expression式
parsing日志文件,检查date,报告结果
这个与-P(perl正则表达式)的grep工作:
echo "foo (this is a string) bar" | grep -Po '(K[^)]*' this is a string
或者使用awk:
echo "foo (this is a string) bar" | awk -F '[()]+' '{print $2}' this is a string
或使用sed:
echo "foo (this is a string) bar" | sed 's/^.*((.*)*).*$/1/' this is a string
如果你想匹配括号中的所有内容,不包括圆括号,你应该使用这个grep:
grep -Po '(?<=()[^)]*?'
(?<=()是一个负面的后置断言,它告诉正则表达式引擎从一个左括号前面的字符开始。 [^)]*? 告诉它匹配所有字符,直到它遇到一个闭括号。 -P告诉它使用Perl正则表达式语法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。