【问题标题】:Java regex - The Escape Character Followed By The Double Backslahes Or Single?Java regex - 双反斜杠或单反斜杠后跟的转义字符?
【发布时间】:2017-06-24 14:22:01
【问题描述】:

我目前正在学习 java 正则表达式,但我对转义字符有点困惑。我读过java正则表达式基本上是一个两步过程,首先字符串解析器处理字符串,然后是正则表达式。这就是为什么模式中需要双反斜杠的原因。

但是,我想知道转义字符后跟双反斜杠和单反之间有什么区别。例如:

Pattern pattern = Pattern.compile("\\ntest");

Pattern pattern = Pattern.compile("\ntest");

它的工作原理似乎相同,因为无论哪种方式匹配器都返回 true;

Matcher match = pattern.matcher("\ntest");

那么有什么显着差异吗?

【问题讨论】:

  • 您可以同时使用\nLF 模式来匹配换行符。没有区别。

标签: java regex escaping


【解决方案1】:

没有区别。

"\\n" 表示您将\n 字符串发送到正则表达式引擎。见Java regex syntax help

\n    换行符('\u000A')

"\n" 表示您将 LF 符号发送到正则表达式引擎。既然没有特殊含义,就和自己匹配。

所以,"\\n""\n" 用作 regex 模式的字符串字面量 匹配相同的东西。

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 2012-06-16
    • 2017-03-29
    • 2012-02-10
    • 1970-01-01
    相关资源
    最近更新 更多