Java正则中为何反斜线"\"须要用“\\\\”表示,缘由详解。

首先,咱们须要知道在java字符串和正则表达式中,“\”都具备特殊的含义。java

1、Java的字符串中"\"有两个功能

  (一)表明特殊字符:\t表明制表符,\n表明换行....等。正则表达式

  (二)表明转义,在字符串中,若是出现” ‘ \,会形成代码歧义,如:数组

   

  Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )spa

  这时,就须要在形成歧义的字符前加\,来告诉编译器:这个字符只是一个普通字符。blog

   

  会形成歧义的有 \    '    "当咱们想让他们表明普通字符的时候就须要变成\\    \'   \"字符串

 

2、在正则中\一样被赋予了两个功能

  (一)表明特殊功能的字符:如\d表明数组编译器

  (二)表明转义,和上面同样,当出现字符歧义时,加上\表示普通字符。编译

3、总结

  知道了原理,问题就好解释了:class

  由于" \ "号的在正则中被赋予了特殊含义,因此当咱们想在正则中匹配”\”时,须要加上转义变成了\\"原理

  在java字符串中,若是想表示两个普通字符\\”,一样须要为”\”加上转义字符,变成了\\\\”。

  因此当咱们想在java中使用正则表达式匹配"\"时,就须要写成"\\\\"

相关文章
相关标签/搜索