java 正则表达式转义序列

标签 java regex

我想知道 Java 中的正则表达式,并偶然发现了反斜杠的使用。例如,如果我想在文本中查找单词“this regex”的出现,我会这样做:

Pattern.compile("这个正则表达式");

尽管如此,我也可以做这样的事情:

Pattern.compile("this\\sregex");

我的问题是:两者有什么区别?为什么我必须输入反斜杠两次,我的意思是,为什么\s 不是 Java 中的转义序列?提前致谢!

最佳答案

  1. \s 表示任何空白字符,包括制表符、换行符和回车符。
  2. Java 字符串文字已经使用 \ 来转义特殊字符。要将字符 \ 放入字符串文字中,您需要编写 "\\"。然而,正则表达式模式也使用 \ 作为转义字符,将其放入字符串文字的方法是使用两个,因为它经历两个单独的转义过程。例如,如果您从纯文本文件中读取正则表达式模式,则不需要双重转义。

关于java 正则表达式转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262079/

相关文章:

regex - .htaccess 重写可选的尾部斜杠

regex - 在 Mechanize 函数中使用哪个正则表达式标签?

java - 使用 Java Spring REST 服务并解决 angular.js 问题

java - Kafka 管道示例不会将所有记录从主题 a 传送到主题 b

regex - 比较 Powershell 脚本中断前后多个子目录的大小

javascript - JS Numbers - 在 .fixed 之后使用区域设置字符串

Python:替换文件中的多个项目

java - 获取bean方法的注解

java - 从 JavaFX TableView 中获取选定项目

java - Glide OnResource设置Call​​back类成员变量以供复用