我想从以下字符串
中使用内括号内的ruby值进行捕获textbeforefirstparantheses( (value = "sdfsdf") String countryCode, (value = USER.USER_NAME) final String username, final String grantType)
我想要
textbeforefirstparantheses( String countryCode, final String username, final String grantType)
我正在使用以下内容,但它会捕获外括号内的所有内容。
\(.*...\)
任何帮助?
注意:捕获文本还应包括inner(),如预期输出
所示答案 0 :(得分:2)
更容易不尝试一步完成。首先,匹配外括号内的内容,并在sub
块内,进行辅助匹配以匹配内括号。
以下依赖于假设只有一对外括号,以便外部匹配中的贪心量词*
将超出任何内部闭括号。
'textbeforefirstparantheses( (value = "sdfsdf") String countryCode, (value = USER.USER_NAME) final String username, final String grantType)'
.sub(/(?<=\().*(?=\))/){|s| s.gsub(/\([^)]*\)/, "")}
# => "textbeforefirstparantheses( String countryCode, final String username, final String grantType)"