我想知道 Java 中的正则表达式,并偶然发现了反斜杠的使用。例如,如果我想在文本中查找单词“this regex”的出现,我会这样做:
Pattern.compile("这个正则表达式");
尽管如此,我也可以做这样的事情:
Pattern.compile("this\\sregex");
我的问题是:两者有什么区别?为什么我必须输入反斜杠两次,我的意思是,为什么\s 不是 Java 中的转义序列?提前致谢!
最佳答案
\s
表示任何空白字符,包括制表符、换行符和回车符。- Java 字符串文字已经使用
\
来转义特殊字符。要将字符\
放入字符串文字中,您需要编写"\\"
。然而,正则表达式模式也使用\
作为转义字符,将其放入字符串文字的方法是使用两个,因为它经历两个单独的转义过程。例如,如果您从纯文本文件中读取正则表达式模式,则不需要双重转义。
关于java 正则表达式转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262079/