全部好,
我一直在使用基本拆分 - 我只是根据像“”或“,”这样的简单标记将字符串解析成数组。
当然,客户会尝试这样做:\\.br\
惨遭失败。
我需要解析一系列行。例如,字符串如下所示:
"LINE 1\\.br\\LINE 2\\.br\\LINE 3\\.br\\LINE 4\\.br\\"
,但java.util.regex.PatternSyntaxException: Unexpected internal error
失败了。
有什么想法吗?
答案 0 :(得分:5)
您可以使用Pattern.quote()
转义字符串以用作regexp:
... = s.split(Pattern.quote("\\.br\\"));
答案 1 :(得分:3)
不要忘记String.split takes a Regex,并且大多数人都会输入一个字符串文字,所以你必须逃避\正则表达式和将其转义为字符串,所以你最终得到了“ \\\“在您的String参数中表示单个\字符。
e.g。
String.split("\\\")
所以在你的情况下:
String.split("\\\\\\.br\\\\") // extra slash for regex, and String encoded