我是新手使用正则表达式,并想知道是否有人可以指出我正确的方向。
我的问题如下:
我需要模式匹配整个文件以确定代码是否符合规则。 Local Variable Could Be Final. 基本上如果以下代码在文件中,我将需要检查是否再次分配变量。如果没有产生警告,建议改进。
public class Bar {
public void foo () {
String txtA = "a"; // if txtA will not be assigned again it is better to do this:
final String txtB = "b";
}
}
我当然必须为许多其他例子做这个,但我没有被教过正则表达式而且它不是我课程的一部分,如果你可以建议一个模式或提供一个链接来帮助我学习,我会非常感谢。
理想情况下,我想一气呵成,我当然可以生成一组变量出现并再次“扫描”该文件以查看它们是否出现< 2次。但是正则表达式是闪电般快速的,我希望以这样一种方式来解决这个问题,即我可以使用一种方法,我只需传入模式+字符串进行匹配。
我已经开始了,我可以找到多次出现,但如果另外一个变量介于两个实例之间,我的正则表达式将无法接收它们。
它很接近,但我认为几乎不会在每个场景中都有效。
正则表达式:(\s*txtA\s*=\s*.*){2,}
public class Bar {
public void foo () {
String txtA = "a"; // matches
txtA = "ab"; // matches
String txtB = "xxx"; // breaks the match
txtA = "abc"; // doesn't match, but should.
}
}
如果上述方法是错误的,并且你知道一种更有效的方法,也许是一些PHP库,请建议。