关于Java正则和转义中\\和\\\\的理解
JAVA 关于 理解 正则 转义
2023-09-27 14:29:04 时间
定义
一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。
转义就是指转换该字符的原本意义,从而变成另外的意义。
\作为Java的转义字符
1.在java字符常量中,反斜杠(\)是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符。转义后的字符通常用于表示一个不可见的字符或具有特殊含义的字符,例如换行(\n)、回车符(\r)、制表符(\t)。
2.在java中以下字符都有特殊意义,无法直接表示
单引号:char c = 'a'; 表示字符类型的数据时需要使用单引号将字符左右括起来。所以要表示字符'则需要使用\'
双引号:String str = "abc"; 表示字符串类型的数据时需要使用双引号将字符串左右括起来。要表示字符串"则需要\"
反斜杠:String regex = "你好\n\t棒"; 在java代码中\表示转义字符,所以如果要表示字面意思的\,则需要使用\\
所以用反斜杠加上本身字符来进行表示。
\在正则表达式中
\表示将下一字符标记为特殊字符。如\d表示数字字符匹配,等效于 [0-9]。\w表示匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效。
在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
\\中的第一个\表示java的转义字符\由编译器解析,第二个\是正则表达式\由正则表达式引擎解析。
Java正则表达式中匹配一个普通的反斜杠是\\\\
注意观察下图中的静态代码中的变量定义和运行中的内存变量之间的区别。
代码
package com.lingyejun.authenticator; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { // 正则表达式中\\\\匹配一个\ boolean flg = Pattern.matches("\\\\","\\"); System.out.println(flg); char a = 'a'; String b = "abc"; String c = "你好\n\t棒"; System.out.println(c); char d = '\''; String e = "\""; System.out.println(d); System.out.println(e); String f ="\\"; System.out.println(f); String j = "\\\\"; System.out.println(f + j); String h = "{\"name\":\"翎野君\"}"; System.out.println(h); String g = "{\\\"age\\\":\\\"99\\\"}"; System.out.println(g); String k = g.replaceAll("\\\\",""); System.out.println(k); } }
相关文章
- Java中的接口
- Java-Web 用html写一个简单的用户注册界面
- 朴素贝叶斯分类算法-----java
- 关于Delphi中的集合类型比如类似JAVA中的HashMap在哪里?
- 作为JAVA开发工程师,关于变量的基本常识你都知道吗
- 关于JAVA发送Https请求(HttpsURLConnection和HttpURLConnection)
- [链接] Java语言规范里关于Java类与接口的卸载的描述
- java根据key或value对Map进行排序
- 关于java web的笔记2018-01-12
- 【FAQ】【HarmonyOS】鸿蒙java开发关于蓝牙通信api的传输数据大小设置
- 基于Java实现可靠传输【100010206】
- java中关于SSL/TSL的介绍和如何实现SSL Socket双向认证
- java解析复杂json:JSONObject 和 JSONArray的使用
- 关于java多态
- Java中关于WeakReference和WeakHashMap的理解
- Java虚拟机jvm关于内存的设置与调优
- 浅谈关于java程序员面试的一些事项
- 关于Java基础的一些笔试题总结
- 新鲜出炉关于2017年Java就业前景分析
- 关于java的JIT知识
- Java学习路线:day17 开发团队调度软件
- 关于java的参数传递(值传递、引用传递和传值、传引用等)
- 关于Java 14新版本的新特性
- 关于Java中的异常处理
- Java集合框架学习(ArrayList、Set、Collection、Vector、Enumeration、Map、Iterator)
- Java 构造函数注入 有的不需要自动注入