[英]How to escape the regex when splitting an String array
我正在寻找一个更简单的解决方案。 我是Java的新手,我需要一些帮助。 我正在尝试通过此'],['将String拆分为String []。 问题是Java试图像Regex一样获得这些,而我不想使用它,因为我的能力还不够好。 我只想将字符串用这三个字符“],[”; 这是我的代码:
String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(token);
这是错误的输出:线程“ AWT-EventQueue-0”中的异常java.util.regex.PatternSyntaxException:索引2附近的未封闭字符类],[...请提出任何建议,以使这种想法可行?
PS。 还有其他分割字符串的方法吗? 我不太喜欢这个正则表达式。 我曾经使用过Qt和C#,在这两个地方都有一种逃避常规表达的方法。 非常感谢人们!
你要 ”\\]\\,\\[”。
String usefulData = ...;
String[] list = usefulData.split("\\],\\[");
这是因为[
和]
是RegEx中的特殊字符。 您必须使用\\\\
对其进行转义以将其用作常规字符。
您可以使用Pattern#quote
方法构建String。
这样,您就不必用反斜杠escape
特殊字符。 Pattern.quote
使您在字符串中的所有special characters
的行为类似于String文字:-
String usefulData = "[a],[b],[c,d]";
String token = Pattern.quote("],[");
String[] list = usefulData.split(token);
for (String val: list) {
System.out.println(val.replaceAll("\\[|\\]", ""));
}
输出 :-
a
b
c,d
String usefulData = ...;
String[] list = null;
String token = "],[";
list = usefulData.split(java.util.regex.Pattern.quote(token));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.