我自己无法解决的另一个RegEx问题:
我有这个JavaScript文件,其中包含以下内容:
var myApp = new App();
function ExplicitFunction ( one, two, three ) {
}
/** This line should match from .add ("ModuleA", ExplicitFunction ) { */
myApp.add ("ModuleA", ExplicitFunction ) {
}
/** This line should not match at all because of [ character after "ModuleB", */
myApp.add ("ModuleB", ["p1", "p2", function (p1, p2) {
}]);
/** This line should match from .add ("ModuleC", function(paramA, paramB) { */
myApp.add ("ModuleC", function(paramA, paramB) {
});
根据上面的代码,我想写一个RegEx,它将从这个文件中找到那些不符合这种编码约定的代码; 请注意数组参数。
.add ("Some String Here", [ anything here string or function ]);
所以基本上,正如文件中的注释/ ** * /所描述的那样
myApp.add ("ModuleB", ["p1", "p2", function (p1, p2) {
}]);
不应该匹配,因为它遵循上面描述的编码约定。
并且调用myApp.add的其他行应该匹配,因为它不符合约定。
我尝试了以下内容:
\.add\s*\({1}.*[^\[]\w*
但它从.add字符串中选择所有内容。
有人能指出我正确的方向吗?提前谢谢!
答案 0 :(得分:2)
答案 1 :(得分:1)
这样的事情可行:
\.add\s*\([^\[\n]*{$
.add
,然后是可能的空格,然后是(
,然后是非[
或换行符,最后是{
关闭该行的内容。
所有这一切都使用\m
开关,使$
匹配该行的结尾。
它当然可以根据您的需求进行改进和量身定制,但可能是一个良好的开端。