关于对Java正则表达式"\\\\"的理解

2023-05-16 0 2,685

相信很多人在使用正则表达式时候都会遇到如下的语句

关于对Java正则表达式"\\\\"的理解

关于对Java正则表达式"\\\\"的理解

关于对Java正则表达式"\\\\"的理解

通过查阅正则表达式的API文档可以了解到正则表达式的语法知识

关于对Java正则表达式"\\\\"的理解

很多小伙伴就会产生疑问为什么语法是"\\d"(或是"\\D"、"\\w"),为什么在语句中使用的时候就变成了"\\\\"   ??????

下面以"\\\\d"为例:

理解一:

这要分两步看

①.首先字符串中的\\\\被编译器解释为\\&;   ------>    第一步,编译器将字符串转变为“正则表达式”

②.然后作为正则表达式,\\d又被正则表达式引擎解释为“数字[0--9]"    ------> 第二步,才开始把第一步的结果当做是正则表达式,开始进行匹配!

理解二:

这个是由两部分组成的   \\ 转义符 +  \\d 是一个正则表达式。标识所有数字及0-9

之所以要加\\是因为在JAVA中一些特殊的符号(回车)是没有符号代表的。所以需要转义符这个概念。而像回车这类转义符都是由\\开始的。那么就出现了第二个问题,如果我要输入的恰恰是\\符号怎么办?那么这个问题就还用转义符来解决。即为转义字符的再转义,就可以让编译器识别到我们输入的并不是一个特殊字符,而是一个表示特定含义的正则表达式"\\d"。

补充:为什么“java正则表达式中匹配一个反斜杠要用四个反斜杠”,java正则表达式为啥用两个\\\\表示一个\\

首先我们知道在正则表达式中\\代表转义,而java中\\也代表转义(一些字母前加\\来表示常见的那些不能显示的ASCII字符,如\\0,\\t,\\n等,就称为转义字符)。

根据“jdk API中的原话:根据 Java Language Specification 的要求,Java 源代码的字符串中的反斜线被解释为 Unicode 转义或其他字符转义。因此必须在字符串字面值中使用两个反斜线,表示正则表达式受到保护,不被 Java 字节码编译器解释。”

根据“thinking中的一段话:如果在其他语言中使用过正则表达式,那你就立刻能发现Java对反斜线\\的不同处理.在其他语言中,\\表示"我想要在正则表达式中插入一个普通的(字面上的)反斜线,请不要给他任何特殊的意义."而在Java中,\\的意思是"我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义."例如,如果你想表示一位数字,那么正则表达式应该是\\d.如果你想插入一个普通的反斜线,则应该这样用\\\\.不过换行和制表符之类的东西只需使用单反斜线:\\n\\t. ”

也就是java解释字符串时,正则表达式受到保护(可以这样理解:先由java解释器解释字符串,然后再由正则表达式解释器解释正则表达式),

那么

String pattern = \"a\\\\\\\\b\";

首先被java解释器解释为“a\\b”(第一个和第三个\\代表转义,此时正则表达式受到保护,不被解释),再被正则解释器解释为"a\\b"。即java中由4个\\表示一个\\。也就是他文中所说的java正则表达式被解释两次。

总结

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 关于对Java正则表达式"\\\\"的理解 http://www.20zxx.cn/705983/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务