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

\的定义

一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具备不一样于该字符序列单独出现时的语义。java

转义就是指转换该字符的本来意义,从而变成另外的意义。正则表达式

\做为Java的转义字符

1.在java字符常量中,反斜杠(\)是一个特殊的字符,被称为转义字符,它的做用是用来转义后面一个字符。转义后的字符一般用于表示一个不可见的字符或具备特殊含义的字符,例如换行(\n)、回车符(\r)、制表符(\t)。bash

2.在java中如下字符都有特殊意义,没法直接表示spa

单引号:char c = 'a'; 表示字符类型的数据时须要使用单引号将字符左右括起来。因此要表示字符'则须要使用'3d

双引号:String str = "abc"; 表示字符串类型的数据时须要使用双引号将字符串左右括起来。要表示字符串"则须要"code

反斜杠:String regex = "你好\n\t棒"; 在java代码中\表示转义字符,因此若是要表示字面意思的\,则须要使用\cdn

因此用反斜杠加上自己字符来进行表示。blog

\在正则表达式中

\表示将下一字符标记为特殊字符。如\d表示数字字符匹配,等效于 [0-9]。\w表示匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效。内存

在 Java 中,\ 表示:我要插入一个正则表达式的反斜线,因此其后的字符具备特殊的意义。字符串

\中的第一个\表示java的转义字符\由编译器解析,第二个\是正则表达式\由正则表达式引擎解析。

Java正则表达式中匹配一个普通的反斜杠是\\

注意观察下图中的静态代码中的变量定义和运行中的内存变量之间的区别。

regex

代码

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); } } 复制代码
相关文章
相关标签/搜索