如何在java字符串中搜索特殊字符?
我在寻找特殊角色时遇到了一些问题。 我得到一个java.util.regex.PatternSyntaxException异常发生。 这可能与被视为特殊角色有关。 我不太擅长图案表达。有人能帮我正确地搜索转义角色吗如何在java字符串中搜索特殊字符?,java,regex,escaping,Java,Regex,Escaping,我在寻找特殊角色时遇到了一些问题。 我得到一个java.util.regex.PatternSyntaxException异常发生。 这可能与被视为特殊角色有关。 我不太擅长图案表达。有人能帮我正确地搜索转义角色吗 // I need to split the string at the "(" String myString = "Room Temperature (C)"; String splitList[] = myString.split ("("); // i
// I need to split the string at the "("
String myString = "Room Temperature (C)";
String splitList[] = myString.split ("("); // i got an exception
// I tried this but got compile error
String splitList[] = myString.split ("\(");
您第一次遇到异常的原因是,它将正则表达式作为参数,并且正如您所建议的那样,在这里有一个特殊的含义。要避免这种情况,您需要使用\来逃避它,就像您尝试过的那样 您错过的是,您还需要在Java中使用一个额外的\来避免反斜杠,这意味着您总共需要两个:
String splitList[] = myString.split ("\\(");
您第一次遇到异常的原因是,它将正则表达式作为参数,并且正如您所建议的那样,在这里有一个特殊的含义。要避免这种情况,您需要使用\来逃避它,就像您尝试过的那样 您错过的是,您还需要在Java中使用一个额外的\来避免反斜杠,这意味着您总共需要两个:
String splitList[] = myString.split ("\\(");
请尝试以下方法之一:
string.split("\\(");
string.split(Pattern.quote("("));
由于字符串拆分将正则表达式作为参数,因此需要正确转义字符。请参见Jon Skeet的文章:尝试以下方法之一:
string.split("\\(");
string.split(Pattern.quote("("));
由于字符串拆分将正则表达式作为参数,因此需要正确转义字符。请参见Jon Skeet的文章:您需要通过反斜杠转义字符:string.split\\ 您需要通过反斜杠转义字符:string.split\\ 是正则表达式字符之一。为了逃避它,你可以使用 splitPattern.quote, 拆分\\Q\\E, 拆分\\, 拆分[]。 是正则表达式字符之一。为了逃避它,你可以使用 splitPattern.quote, 拆分\\Q\\E, 拆分\\, 拆分[]。
好的,非常感谢,很有效。好的,非常感谢,很有效。