关于Java正则和转义中\\和\\\\的理解

简介: 关于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);
    }
}
目录
相关文章
|
4月前
|
Java 计算机视觉
【Java 正则表达式】简单用法,注意点,我学不会正则
【Java 正则表达式】简单用法,注意点,我学不会正则
|
Java
java身份证、手机号、邮箱正则校验工具类
java身份证、手机号、邮箱正则校验工具类
458 0
|
Java
Java中以"."分割字符串的方法【符号转义】
Java中以"."分割字符串的方法【符号转义】
277 0
|
JavaScript Java Apache
java后台对前端输入的特殊字符进行转义
转自:http://www.cnblogs.com/yangzhilong/p/5667165.html     java后台对前端输入的特殊字符进行转义   HTML: 常见的帮助类有2个:一个是spring的HtmlUtils,另外一个是apache.
2877 0
Java处理正则表达式特殊字符转义
正则需要转义字符:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 异常现象: java.util.regex.PatternSyntaxException: Dangling meta. character '*' near index 0 解决方法: 对特殊字符加\\转义即可。
5016 0
|
Java API
Java的正则表达式原理及使用场景(上)
Java的正则表达式原理及使用场景(上)
161 0
Java的正则表达式原理及使用场景(上)
借助regex包完成正则高级操作 | 带你学《Java语言高级特性》之二十六
大多数情况下我们可以直接通过String类完成字符串正则处理,但有时我们会碰到String不易解决的问题,此时我们需要使用本节提到的java.util.regex包来进行处理。
借助regex包完成正则高级操作 | 带你学《Java语言高级特性》之二十六
String+正则,实现字符串快速调整 | 带你学《Java语言高级特性》之二十五
了解了正则表达式的相关内容,可以发现正则表达式服务于字符串,而Java中String类也针对正则表达式提供了一系列的便捷方法以供调用,让我们一起来使用正则快速处理字符串吧。
String+正则,实现字符串快速调整 | 带你学《Java语言高级特性》之二十五
使用正则必备标记 | 带你学《Java语言高级特性》之二十四
如果想要进行正则的处理操作,那么首先需要对常用的正则标记有所掌握。一起来学习吧!
|
SQL Java Apache
利用StringEscapeUtils对字符串进行各种转义与反转义(Java)
利用StringEscapeUtils对字符串进行各种转义与反转义(Java) apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils,这个工具类是在2.
5131 0