写程序遇到点问题,发现是不清楚java中反斜线的处理。在《java编程思想》中,java中的 \\
表示“我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。”如果想插入一个普通的反斜线,那么应该使用 \\\\
。感觉很费解啊。为什么是这样的,这四个反斜线中每个反斜线的含义是什么?
蛋疼
普通反斜杠
我们使用的反斜杠,就是一个 \
文艺反斜杠
但是在java等编程语言中,我们需要使用转义:一个文艺反斜杠 \\
表示一个普通反斜杠 \
二逼反斜杠
正则表达式中,反斜杠也需要转义,即 \\
表示匹配一个 \
,然后蛋疼的事儿就来了,当你在 java中写 \\
时,其实正则表达式引擎只接受到了一个 \
,所以,如果你想让正则表达式引擎接受两个反斜杠,那么这两个斜杠都得转义。
于是,正则表达式匹配一个 \
是,应该写 \\
这时,第一个 \
在 java 字符串中写为 \\
第二个 \
在 java 字符串中写为 \\
于是,你就看到了java中无比蛋疼的 \\\\