使用正则表达式来匹配regextest(dontcare,dontcare,true)

时间:2017-11-02 11:52:21

标签: regex

我想使用正则表达式查找所有函数调用(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

1 个答案:

答案 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