java pattern 转义_浅谈关于Java正则和转义中\\和\\\\的理解
\的定义
一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。
转义就是指转换该字符的原本意义,从而变成另外的意义。
\作为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 pattern 转义_浅谈关于Java正则和转义中\\和\\\\的理解相关推荐
- java 实现事件驱动_浅谈用java实现事件驱动机制
由于项目需求,需要为Java提供一套支持事件驱动机制的类库,可以实现类似于C#中的event和delegate机制.众所周知,Java语言本身以及其标准库中并没有提供事件驱动机制的相关接口,虽然Swi ...
- 简述autocad在测绘工程中的应用_浅谈AutoCAD在工程测绘制图中的应用
龙源期刊网 http://www.qikan.com.cn 浅谈 AutoCAD 在工程测绘制图中的应用 作者:高振华 来源:<职业 · 下旬> 2011 年第 02 期 AutoCAD ...
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- java bitset用途_浅谈Java BitSet使用场景和代码示例
搜索热词 @H_502_0@一.什么是BitSet? @H_502_0@ 注:以下内容来自JDK API: @H_502_0@ BitSet类实现了一个按需增长的位向量.位Set的每一个组件都有一个b ...
- java 多线程同步_浅谈Java多线程(状态、同步等)
Java多线程是Java程序员必须掌握的基本的知识点,这块知识点比较复杂,知识点也比较多,今天我们一一来聊下Java多线程,系统的整理下这部分内容. 一.Java中线程创建的三种方式: 1.通过继承T ...
- java list数组排序_浅谈对象数组或list排序及Collections排序原理
常需要对list进行排序,小到List,大到对自定义的类进行排序.不需要自行归并或堆排序.简单实现一个接口即可. 本文先会介绍利用Collections对List进行排序,继而讲到Collection ...
- java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题
JSON轻量级的数据交换格式 相对于XML来说,JSON的解析速度更快,文档更小. JSON的格式 {属性名:属性值,属性名:属性值,--} 属性名的类型可以是string,number,boolea ...
- java手动回收_浅谈java是如何做资源回收补救的
学习java的过程,我们经常谈论一个对象的回收,尤其是资源类型,如果没有显示的关闭,对象就被回收了,说明出现了资源泄漏.java本身为了防止这种情况,做了一些担保的方式,确保可以让未关闭的资源合理回收 ...
- java同名函数_浅谈Java 继承接口同名函数问题
在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: interface A{ void fun(); } interface B{ void fun(); ...
- java扫码枪键盘_浅谈在react中如何实现扫码枪输入
触发原理 原理就是监听键盘输入,比如扫一个为6970596130126的69条形码,用扫码枪扫一下会在光标位置依次输出: 6 9 7 0 5 9 6 1 3 0 2 6 但这不是完整的,所以需要写一个 ...
最新文章
- 借助可视化,最直观理解梯度,以及偏导数、方向导数和法向量等
- 比特币现金的第四次战役
- 年报系统课堂讨论记录
- 山东师范大学计算机尹副教授,我校举办首届优秀教案展评工作
- Redis 如何保持和MySQL数据一致【一】
- 教大家python读取一行一行文件内容的方法
- 读取笔记本的摄像头的原始yuv数据,通过libav(ffmpeg编码)
- 编解码再进化:Ali266与下一代视频技术
- Web页面在桌面上显示的后台基本步骤
- git只提交一张图片_即使只使用一张静止的图片,也能制作出带有动感天空的视频...
- 数据结构与算法快慢指针
- mysql case结合group+having使用
- 从企业实务角度解读 ITIL4 之14个通用管理实践
- [网络诈骗]奈几利亚(奈及利亚), E-Mail 骗术
- jboot 配置durid + logback debug打印 sql+执行参数(非?)
- 键盘控制计算机的原理,键盘内部结构和原理的说明
- vnc远程控制软件中文版,盘点六款好用的vnc远程控制软件中文版
- win7一直显示正在关机_win7系统一直卡在正在关机无法关机怎么解决
- 折叠屏手机阵亡,三星的手机梦会不会被彻底折叠?
- 三星s5刷机android+l,三星s5刷机教程与方法(卡刷第三方包)