0
逃脱我在java中的字符串,我想在零件拆就以下标准:拆分Java中的字符串根据分隔,除非隔板与String.split
- 以“#”字符是分隔
- 如果 '#' 通过反斜线则不应被视为一个分隔符
即
“ABC#XYZ#公里升\ #ijk”
应分成
“ABC”, “XYZ”, “KML \ #ijk”
我可以用的StringTokenizer轻松完成,并添加一些逻辑逃生字符,但我想通过一个正确的正则表达式通过单线String.split调用它。到目前为止,我的 “最好” 的尝试以下操作:
public static void main(String[] args) {
String toSplit = "abc#xyz#kml\\#ijk";
String[] arr = toSplit.split("[^\\\\]#");
System.out.println(Arrays.toString(arr));
}
,其结果是:
[AB,XY,KML#IJK]
前两个的最后一个字母零件被切除。
任何想法如何避免这种情况?
这只适用于一次转义,并且在一行中有多个转义字符时失败。 – nhahtdh 2015-02-09 04:53:09