Mat*_*ias 2 regex bash grep cygwin
我想用正则表达式获取函数调用的参数(没有parantheses).
我正在使用egrepcygwin的bash脚本.
这是我到目前为止(带有parantheses):
$ echo "require(catch.me)" | egrep -o '\((.*?)\)'
(catch.me)
Run Code Online (Sandbox Code Playgroud)
什么是正确的正则表达式?
ДМИ*_*КОВ 11
http://www.greenend.org.uk/rjk/2002/06/regexp.html
你在寻找什么 - 是一个外观和前瞻性的正则表达式.
Egrep不能那样做.grep使用perl支持可以做到这一点.
来自man grep:
-P, --perl-regexp
Interpret PATTERN as a Perl regular expression. This is highly experimental and grep -P may warn of unimplemented features.
Run Code Online (Sandbox Code Playgroud)
所以
$> echo "require(catch.me)" | grep -o -P '(?<=\().*?(?=\))'
catch.me
Run Code Online (Sandbox Code Playgroud)