拆分分隔符 java
Split Delimiter java
i've found an answer when searching in Whosebug, it works
perfectly but when i saw the comment the user doesn't explain how the
code works, can someone explain to me how does this code means?....
String input =
" [John, 8, 9, 10, \r\n"
+ " , Peter, 10, 8, 7, \r\n"
+ " , Steve, 8, 9, 6, \r\n"
+ " ]";
String output = input.replaceAll("(?m)^[\s,\[]+|[\s,\]]+$|[\s&&[^\r\n]]+", "");
System.out.println(output);
根据评论回答您的问题:
"[\s&&[^\r\n]]+" 这部分我根本不明白,我不知道逗号消失的地方是无逗号分隔符,并且只有括号定界符” – Jansen Stanlie
我将忽略字符串转义并将其写为真正的正则表达式。
在正则表达式的 java 风格中,您可以使用 class 进行交集和减法:
[..&&[..]] 和 [..&&[^..]。将 .. 替换为您的字符 class 和 inclusion/exclusion 范围。
例如
[a-z&&[^aeiou]] 会给你一个不是元音的英文小写字母。
因此,在您的示例中(删除 java 字符串转义)
[\s&&[^\r\n]] - \s 任何空白字符,\r 或 \n 除外。这样做是为了去掉所有空格,但保留换行符。
这也可以写成
[\s&&[\V]] 这将使它符合 Unicode。 \V 是 不是 垂直空格的任何字符。
逗号去掉哪里的问题:
此处删除了前导逗号:
(?m)^[\s,\[]+|[\s,\]]+$|[\s&&[^\r\n]]+
^
和尾随:
(?m)^[\s,\[]+|[\s,\]]+$|[\s&&[^\r\n]]+
^
i've found an answer when searching in Whosebug, it works perfectly but when i saw the comment the user doesn't explain how the code works, can someone explain to me how does this code means?....
String input =
" [John, 8, 9, 10, \r\n"
+ " , Peter, 10, 8, 7, \r\n"
+ " , Steve, 8, 9, 6, \r\n"
+ " ]";
String output = input.replaceAll("(?m)^[\s,\[]+|[\s,\]]+$|[\s&&[^\r\n]]+", "");
System.out.println(output);
根据评论回答您的问题:
"[\s&&[^\r\n]]+" 这部分我根本不明白,我不知道逗号消失的地方是无逗号分隔符,并且只有括号定界符” – Jansen Stanlie
我将忽略字符串转义并将其写为真正的正则表达式。 在正则表达式的 java 风格中,您可以使用 class 进行交集和减法:
[..&&[..]] 和 [..&&[^..]。将 .. 替换为您的字符 class 和 inclusion/exclusion 范围。
例如
[a-z&&[^aeiou]] 会给你一个不是元音的英文小写字母。
因此,在您的示例中(删除 java 字符串转义) [\s&&[^\r\n]] - \s 任何空白字符,\r 或 \n 除外。这样做是为了去掉所有空格,但保留换行符。
这也可以写成 [\s&&[\V]] 这将使它符合 Unicode。 \V 是 不是 垂直空格的任何字符。
逗号去掉哪里的问题: 此处删除了前导逗号:
(?m)^[\s,\[]+|[\s,\]]+$|[\s&&[^\r\n]]+
^
和尾随:
(?m)^[\s,\[]+|[\s,\]]+$|[\s&&[^\r\n]]+
^