我想使用正则表达式查找所有函数调用(c ++,但不重要),其中使用3个参数调用函数,最后一个参数具有特定值。
例如我想搜索所有调用regextest的调用,调用3个参数,第三个参数是'true'
regextest(aaa,bbb,true) : OK
regextest(aaa,ccc,false) : NOK, third parameter is not 'true'
regextest(aaa,bbb,true,false) : NOK four parameters are used
答案 0 :(得分:1)
如果参数本身不能包含任何逗号,请使用
regextest\([^(),]+,[^(),]+,true\)
<强>解释强>
regextest\( # Match "regextest("
[^(),]+ # Match one or more characters except parens/commas
, # Match a comma
[^(),]+ # (see above)
,true\) # Match ",true)"
请注意,匹配正则表达式时空格很重要 - 如果,\s*true\s*)
周围可能有空格,则可能需要在正则表达式的最后部分使用true
。