Java正则表达式解释

Ter*_* Li -2 java regex

import java.util.regex.*;

public class Splitter {
    public static void main(String[] args) throws Exception {
        Pattern p = Pattern.compile("[,\\s]+");
        String[] results = p.split("one,two, three   four ,  five");
        for (String result : results) {
            System.out.println(result);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

拆分器可以是逗号或空格,也可以是任意数量的组合.我认为它的正则表达式应该是[,\s]+.为什么示例中会有额外的反斜杠?

Chi*_*hip 6

额外的\是逃避下一个反斜杠.在任何Java字符串"\\"手段"\".

这是因为这'\'是一个特殊的角色.你必须看到"\n"过去的意思是换行吗?所以要将文字\放在你使用的字符串中"\\".

例如试试System.out.println("Here\'s a backslash : \\").

这将打印: Here's a backslash : \