普通字符串中使用
Java中的\ 一般用在字符串中,在字符串中其不能单独存在,后面一定要跟个东西。以表示转义,也就是这个东西的另一种意义。 比如在Java中,n 在字符串中就是n 本身的意思,\n 就表示换行;“ 用于表示字符串,\" 表示引号本身。(这两个正好反过来了) Java看见\ 号了,后面没东西——不行
Java看见\ 号了,后面就转义,还是一个\ ,那就表示想要\ 本身了。
正则表达式中使用
正则也是写在一个字符串中的,首先当然要遵循Java字符串的语法。别的语言用\ 表示一些通用的情况,比如\d 表示数字。 但是Java不行啊:
- 它不像
\n ,没有\d 这么一说 - 它不像
" ,有特殊的含义,d 就是字符d
所以Java中\d 首先就不符合字符串的语法,那还谈什么正则表达式,因为正则表达也就是一个字符串,用来匹配罢了。别的语言中\ 就是\ 本身,而Java想表示\ 本身只能先转义。所以别的语言中的\d ,在Java中是\\d 。 Java看见第一个\ ,好的后面我给你转义,\\ 就转成了\ ,\\d 也就成了\d 。发现后面是d ,那就是正则了。
再看这个\\\\ 。 Java看见第一个\ ,好,后面我给你转义,\\ 转成了\ ,后面还有个\ ,好,我还给你转义,后面\\ 变成了\ 。那不就是别的语言中的\\ 吗? Java中除非\ 自己是被转义的那个,否则后面一定要跟个东西,表示把这东西转义,这东西也要能被转义才行。
|