gpt4 book ai didi

java - 线程 "main"java.util.regex.PatternSyntaxException : Unmatched closing 中出现异常

转载 作者:行者123 更新时间:2023-12-01 07:57:31 26 4
gpt4 key购买 nike

我正在尝试使用代码注释中显示的语法翻译回句子“b((aa)a)b$”。当我尝试运行它时,出现以下错误。这似乎是字符串分割方法的错误,但我不知道如何修复它。有什么建议么?谢谢。

run:

b((a)a)b$

Exception in thread "main" java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 3

a)

^ at java.util.regex.Pattern.error(Pattern.java:1955) at java.util.regex.Pattern.compile(Pattern.java:1700) at java.util.regex.Pattern.(Pattern.java:1351) at java.util.regex.Pattern.compile(Pattern.java:1028) at java.lang.String.split(String.java:2367) at exercise3.GrammarTest.parser(GrammarTest.java:28) at exercise3.GrammarTest.parser(GrammarTest.java:48) at exercise3.GrammarTest.main(GrammarTest.java:62)

Java Result: 1

BUILD SUCCESSFUL (total time: 1 second)

//grammar
//<P> → <S>$ (P is the start symbol)
//<S> → b<M>b
//<M> → (<L>
//<M> → a
//<L> → <M> a)


public static String parser(String original, String sym, String rep){
if( !(original.contains(sym))){
return original;
}

String str = "";
String [] parts = original.split(sym, 2);

str = parts[0] + rep + parts[1];

System.out.println(str);
return str;
}

public static String parser(String str){
String [] sym = new String[5];
//recursive //b((aa)a)b$
str = parser(str, "a", "<M>"); //b((<M>a)a)b$
str = parser(str, "<M>a)", "<L>"); //b((<L>a)b$
str = parser(str, "(<L>", "<M>"); //b(<M>a)b$
str = parser(str, "<M>a)", "<L>"); //b(<L>b$
str = parser(str, "(<L>", "<M>"); //b<M>b$
str = parser(str, "b<M>b", "<S>"); //<S>$
str = parser(str, "<S>$", "<P>"); //<P>

System.out.println(str);

return str;
}

public static void main(String[] args) {
String str = " b((aa)a)b$ ";
str = parser(str);

}

最佳答案

当你想匹配(时,你必须将其转义为\\(,因为(是一个组的开始对于正则表达式。对于懒惰的人,Java 为此提供了一个外观: Pattern.quote("(a");/* 为您提供\\(a */

关于java - 线程 "main"java.util.regex.PatternSyntaxException : Unmatched closing 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28146265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com