作为一个例子,我有一句话:
if (ProPref.get("kcstcli","manageesw","on").equals("on")) {
我想提取:
"kcstcli","manageesw","on"
我尝试了非贪婪的解决方案,但它不能很好地工作(我正在使用Groovy)。
it =~ /ProPref.get\((.*)?\)/
答案 0 :(得分:5)
非贪婪模式为.*?
,(.*)?
是可选贪婪子模式,匹配除换行符之外的0或更多字符的1或0次出现。
使用
it =~ /ProPref\.get\((.*?)\)/
通过组1访问捕获的值。请参阅this regex demo
s = "if (ProPref.get(\"kcstcli\",\"manageesw\",\"on\").equals(\"on\")) {"
regex = /ProPref\.get\((.*?)\)/
def m = s =~ regex
(0..<m.count).each { print m[it][1] + '\n' }
结果:"kcstcli","manageesw","on"