4

Java で正規表現を書いていますが、プログラムを実行するとエラーが発生します。

private final static Pattern QUOTE_VALUE = Pattern.compile("[_]?([a-zA-Z0-9_]+)=(\"[^]*\"),");
// Then later on down the road......
Macher m = QUOTE_VALUE.matcher(myString);
while (m.find()){
  System.out.println("Found " + m.group(1) + " " + m.group(2));
}

これらのサンプル値と一致するように正規表現を作成したいと思います。

_MyKey="ID IN [ "ABC" ]",  // Note - it has a comma after the ]
_MyKey="ID IN [ ""XYZ"" ]",   // Note - it has a comma after the ]

オンラインの正規表現ヘルパーで試してみましたが、正規表現は実際に正常に動作します。しかし、でプログラムを実行すると、次のエラーが発生します。

Caused by: java.util.regex.PatternSyntaxException: Unclosed character class near index 28
[_]?([a-zA-Z0-9_]+)=("[^]*"),

別の質問は、正規表現をフォーマットして、この文字列と一致させるにはどうすればよいですか?

MyKey="ID IN [ "ABC" ]",  // without the _
_MyKey="ID IN [ "ABC" ]",  // with the _

ありがとう。

[編集]

質問のこの部分を手伝ってもらえますか?

別の質問は、正規表現をフォーマットして、この文字列と一致させるにはどうすればよいですか?

MyKey="ID IN [ "ABC" ]", // _ なし _MyKey="ID IN [ "ABC" ]", // _ あり

4

1 に答える 1