我在java中編寫正則表達式,但運行程序時出現錯誤。java.util.regex.PatternSyntaxException:索引附近的未封閉字符類
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「]」,//與_
我的猜測是你有一個未關閉的字符類 – keyser
請看[本頁解釋字符類]中標題爲「元字符內部的元字符」一節(http://www.regular-expressions.info/charclass。 html),他們在那裏解決'[^] x]'作爲一個例子,可以很好地解釋你的錯誤。 – femtoRgon