正则表达式用egrep获取分隔内容

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)