关于Java正则表达式中转义符“\\”的使用
一.前言
在复习到正则表达式这一部分的内容时,我注意到Java中要想使用转义符必须要用双反斜杠来达到其他语言中单反斜杠的效果,出于对这个问题的好奇我查阅了一些资料,并初步了解了Java正则表达式中转义符的相关机制,我将在接下来的文章中简要介绍。
二.Java中的转义符
首先我们可以发现,在Java的字符串中如果出现奇数个反斜杠,会导致无法通过静态检查
而要使用转义的话我们必须用双反斜杠
由上图可见这两种情况中,双反斜杠都起到了其他语言中单反斜杠的作用,由此我们可以初步猜测在Java中双反斜杠等价于其他语言中单反斜杠
经过查阅相关资料,我们可以知道在Java中\\表示插入一个正则表达式中的反斜杠,也就是对其后面的字符进行转义。
但对于制表符 \t ,换行符 \n 等具有特殊意义的字符组合中,单反斜杠的存在是合法的。而且我们还可以发现一个有趣的事情,在Java正则表达式中 \t 和 \\t 都可以成功匹配制表符,二者在使用中并没有差异。
另外,理论上来讲"\\"这个正则表达式在Java中是用来匹配单反斜杠的,但由于单反斜杠在Java中不合法(\n,\t等有特殊意义的字符除外),所以当我们试图用这个正则表达式来匹配的时候编译器会抛出一个错误
同理,当我们试图用2的偶数倍个连续的反斜杠进行匹配时也会抛出同样的错误
三.总结
在Java正则表达式中想要使用转义符的时候,我们可以先写出一个通用正则表达式,再将其中的所有单反斜杠替换成双反斜杠。同时也要考虑一些特殊情况可能引起的错误。
关于Java正则表达式中转义符“\\”的使用相关推荐
- python中转义符的用法大全_Python中的各种转义符\n\r\t
Python中属性和描述符的简单使用 Python的描述符和属性是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过google和阅读源码,现将自己的理解和 ...
- Java正则表达式中的反向引用
Java正则表达式中的反向引用是Java提供的另一个重要功能. 要了解反向引用 ,我们首先需要了解群组 . 正则表达式中的分组意味着将多个字符视为一个单元. 通过将要分组的字符放在一组括号" ...
- Java正则表达式中的捕获组的概念及相关API使用
要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念.捕获组也就是Pattern中以括号对"()"分割出的子Pattern.至于为什么要用捕获组呢,主要是为了能找出在一次 ...
- java pattern matches,Java正则表达式中的Pattern.matches()方法
java.util.regex.Pattern.matches()方法匹配正则表达式和给定的输入.它有两个参数,即正则表达式和输入.如果正则表达式和输入匹配,则返回true,否则返回false. 给出 ...
- JAVA 中转义符的理解
生物信息中有时候会遇到JAVA写的程序,今天阅读源码的时候发现对于正则中的转义符不好理解,后来查资料后终于弄明白了,这里详细说明一下: 字符串的表示有三种方法:1.直接单字符,例如"A&qu ...
- php 正则表达式 中括号 转义符能转换一个字符串吗,转义字符,正则表达式,特殊字符,模式匹配...
1.常见的转义字符 字母前面加上反斜线 "\" 来表示常见的那些不能显示的ASCII字符.称为转义字符.如 \0, \t, \n 等. 转义字符 意义 ASCII码值(十进制) \ ...
- Java 正则表达式中为什么反斜杠“\“需要用“\\\\”表示
正则表达式语法 在其他语言中,\\(两个斜杠) 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义. 在 Java 中,\\ (两个斜杠)表示:我要插入一个正则表达式 ...
- 七、Java编码字符集和转义符介绍
@Author:Runsen @Date:2020/5/21 拼命复习,回顾之前写的,然后不断地修改博文,每一篇都有回忆 文章目录 字符集 编码 ASCII编码 转义符 代码 字符转化 打印转义符 字 ...
- Java 正则表达式 中的 任意字符
原来正则表达式中的"."代表的是除换行以外的任意字符,如果要真正代表任意字符,需要把换行符也加进去,但是经过测试"[.\\n]"不生效,可以使用"\\ ...
最新文章
- poj1220:高精度进制转换模板题
- windows平台下用CMake工具编译osg用法说明
- mysql gps海拔表_GPS海拔表
- Latex中插入超链接/网址
- armstrong number in python_Python3 From Zero——{最初的意识:008~初级实例演练}
- Atmospheric Scattering in Unity5
- 中国油冷却单元行业市场供需与战略研究报告
- Android安全之Https中间人攻击漏洞
- Outlook邮箱注册详解教程
- macbookair有没有touchbar_高配MacBook Air和低配MacBook Pro选哪个?
- 桐桐的新闻系统【模拟】
- java中多种写文件方式的效率对比实验
- Python基本数据类型-字符串的操作
- word07如何插入和删除分节符
- 基于Python热点新闻关键词数据分析系统
- vue实现中英文网站配置
- iOS图像处理(4)坐标变化
- 《VS面向对象及可视化设计 》文本操作实例5-1
- 攻防世界——如来十三掌 give_you_flag
- Linux卸载雷鸟邮件客户端,Thunderbird
热门文章
- 为什么魔兽世界里男性玩家爱选女性角色?
- 卷积处理过程模拟:用Python实现OpenCV函数filter2D等效的卷积功能
- 云里黑白第十八回——win10便笺打不开 空白 无响应 便签便利贴芭比Q了
- Python +大数据-Hadoop生态-Linux(二)-集群搭建和安装
- python 输入学生成绩大于 90为优_对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。以下代码如何限制成绩最高100分。...
- 才云 Caicloud 步履不停,与云原生先行者携手同行
- 机器学习实战 AdaBoost预测患有疝气病的马的存活问题
- frozen dinner
- Windows 禁用WIn+L锁定系统快捷键
- Nihilist—矩阵式替换密码