假设我有类似下面的源代码,假设在语法上是完全有效的:
MyType basket("woven"); // initialize statement
double x = 0; // miscellaneous code
MyType bucket("plastic") ; // another initialize statement
for(int i=0; i<324; ++i ) { cout << i << "\n"; }
/* example of a disposal statement */
MyType basket();
我想要做的是检测语句MyType bucket("plastic");
,因为没有后续的相应MyType bucket();
语句。
使用Python,我构造了以下正则表达式(使用DOTALL
和MULTILINE
选项)。但是有一个问题,我不知道它是什么。
(?P<stmt>MyType\s+[a-zA-Z0-9_]+)\(\s*"|'[^"']+"|'\s*\)\s*;[^(?P=stmt)]*$
基本上,我需要知道如何使用命名组(如(?P=stmt>)
)并检查它的重复。
答案 0 :(得分:2)
答案 1 :(得分:2)