私はいくつかのVBコードを通過するために正規表現を使用しています.フォームのステートメントを見つけたいです-
ABC.Transaction = GlobalCommArea
残念ながら、一部のステートメントはコード内でコメントアウトされています。VB の 1 行のコメントは一重引用符で始まるため、検索すると次のような結果が得られます -
' ABCD.Transaction = GlobalCommArea <-- incorrect
' PQR.Transaction = GlobalCommArea <-- incorrect
WXY.Transaction = GlobalCommArea <-- correct
WXY.Transaction = GlobalCommArea ' 2012 <-- correct
次のコードを使用して、一重引用符の存在を検出して除外しようとしました-
public static void test2()
{
String[] lines = new String[20];
lines[0] = "' ABCD.Transaction = GlobalCommArea";
lines[1] = " ' PQR.Transaction = GlobalCommArea";
lines[2] = " WXY.Transaction = GlobalCommArea";
lines[3] = "WXY.Transaction = GlobalCommArea ' 2012";
String regex;
regex = "^\\s*[^']*\\s*.*.Transaction\\s*=\\s*GlobalCommArea"; // the regex that I am using
Pattern p = Pattern.compile(regex);
for(int i=0; i<=3; i++)
{
Matcher m = p.matcher(lines[i]);
if(m.find())
{
System.out.print("Yes\t");
}
else
{
System.out.print("No\t");
}
System.out.println(lines[i]);
}
}
ただし、正規表現は機能しませんでした。私は次の出力を得ました -
Yes ' ABCD.Transaction = GlobalCommArea
Yes ' PQR.Transaction = GlobalCommArea
Yes WXY.Transaction = GlobalCommArea
Yes WXY.Transaction = GlobalCommArea ' 2012
行頭の一重引用符 (空白を除く) を検出し、それらの行を回避する正規表現を作成するにはどうすればよいですか?