Java正则中为什么反斜线"\"需要用“\\\\”表示,原因详解。
首先,我们需要知道在java字符串和正则表达式中,“\”都具有特殊的含义。
一、在Java的字符串中"\"有两个功能
(一)代表特殊字符:\t代表制表符,\n代表换行....等。
(二)代表转义,在字符串中,如果出现” ‘ \,会造成代码歧义,如:

Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
这时,就需要在造成歧义的字符前加\,来告诉编译器:这个字符只是一个普通字符。

会造成歧义的有 \ ' "当我们想让他们代表普通字符的时候就需要变成\\ \' \"
二、在正则中”\”同样被赋予了两个功能
(一)代表特殊功能的字符:如\d代表数组
(二)代表转义,和上面一样,当出现字符歧义时,加上\表示普通字符。
三、总结
知道了原理,问题就好解释了:
因为" \ "号的在正则中被赋予了特殊含义,所以当我们想在正则中匹配”\”时,需要加上转义变成了“\\"。
在java字符串中,如果想表示两个普通字符“\\”,同样需要为”\”加上转义字符,变成了“\\\\”。
所以当我们想在java中使用正则表达式匹配"\"时,就需要写成"\\\\"
Java正则中为什么反斜线"\"需要用“\\\\”表示,原因详解。的更多相关文章
- Java集合中List,Set以及Map等集合体系详解
转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有H ...
- Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType详解
(1). 和反射+泛型有关的接口类型 java.lang.reflect.Type:java语言中所有类型的公共父接口 java.lang.reflect.ParameterizedType java ...
- Java 8 中新的 Date 和 Time 类入门详解
这篇文章主要是java8中新的Date和Time API的实战.新的Date和Time类是java开发者社区千呼万唤始出来的.Java8 之前存在的Date类一直都受人诟病,很多人都会选择使用第三方的 ...
- 史上最全Java集合中List,Set以及Map等集合体系详解
一.概述 List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有HashSet,LinkedHashSet,TreeSet List下有ArrayL ...
- Java集合中List,Set以及Map等集合体系详解(史上最全)
https://blog.csdn.net/zhangqunshuai/article/details/80660974
- PHP正则表达式中的反斜线
PHP反斜线再正则表达式中的使用 <?php $str = 'hello\world'; $pattern = '/hello\\\\world/'; preg_match($pattern,$ ...
- 转载~kxcfzyk:Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解
Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解 多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁 ...
- 提高Java代码质量的Eclipse插件之Checkstyle的使用详解
提高Java代码质量的Eclipse插件之Checkstyle的使用详解 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代 ...
- java 日志体系(三)log4j从入门到详解
java 日志体系(三)log4j从入门到详解 一.Log4j 简介 在应用程序中添加日志记录总的来说基于三个目的: 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: 跟踪代 ...
随机推荐
- 16.vue-cli跨域,swiper,移动端项目
==解决跨域:== 1.后台 cors cnpm i -S cors 2.前端 jsonp 3.代理 webpack: myvue\config\index.js 找 proxyTable proxy ...
- gitlab提交代码
cd existing_foldergit initgit remote add origin http://10.26.1.9/root/yunlian.gitgit add .git commit ...
- H5的缓存 manifest
H5里面的App Cache是由开发Web页面的开发者控制的,而不是由Native去控制的,但是Native里面的WebView也需要我们做一下设置才能支持H5的这个特性. 1.工作原理 写Web页面 ...
- 黏包:传输过程中 read(不可靠)传输时由于网络造成黏包
但是你在读取本地文件 不涉及传输文件时 read还是可靠的
- windows 10 超级优化,同时解决本地磁盘100%的问题
windows 10 超级优化,同时解决本地磁盘100%的问题 我的系统是笔记本I7处理器,配置了web服务器IIS 和一个数据库(mysql7),同时启用了虚拟机(表中已禁用),以及安装了offic ...
- bootstrap 下拉菜单自动向上向下弹起
.别人的解决方案 2.别人的解决方案 3.我哒 div class="btn-group" style="margin-top:500px;" > < ...
- 41A
#include <stdio.h> #include <string.h> #define MAXSIZE 105 int main() { char Berlandish[ ...
- 【Mac】-NO.100.Mac.1.java.1.001-【Mac Install multiple JDK】-
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...
- kafka安装步骤
kafka 安装内存会报不够 https://stackoverflow.com/questions/9350437/incompatible-initial-and-maximum-heap-siz ...
- jmeter二次开发之java请求
现在很多公司都用的是微服务,每个服务的请求协议有可能不相同,怎样用jmeter二次开发自己的java请求? 下面是具体的开发步骤: 1,把需要的jar包 添加到maven依赖中 jmeter中java ...