我对正则表达式相当陌生,因此我使用正向前瞻编写了以下简单的正则表达式,该正则表达式检测 C 源文件中的函数和函数调用-
\w+(?=\s*\()
它工作正常,但问题是它也检测到非函数语法,如if()
,while()
等等。我可以很容易地避免这种情况:
(if(?!\()) | (while(?!\())
但问题是如何将第二个正则表达式与第一个正则表达式结合起来?我不能OR
,因为第一个仍然匹配if()
,while()
等等,并且在OR
表达式中,如果其中一个术语匹配就足够了。
如何组合这些正则表达式或有一个更好更简单的不匹配非函数语法,如if()
,while()
PS:我使用以下工具来测试我的正则表达式