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

createh51个月前 (02-01)技术教程14


定义

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

转义就是指转换该字符的原本意义,从而变成另外的意义。

\作为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是什么?它到底是个啥?

全文大约【5000】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!文章带有丰富案例及配图,只为让你更好地理解和运用文中的技术概念,给你带来具有足够的思想启迪......------------...

不清楚Java是什么?只需5分钟,了解java必须要懂的知识点

Java是什么?Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。下面是我收集的Java必备基础知识点,希望对你有用。1、 简述Java的基本历史Ja...

什么是Java?(什么是java的关键字)

Java是一种软件平台和计算机编程语言,是现代世界中最普及的技术之一。Java通常用于指Java平台,一组允许轻松进行跨平台应用程序开发的工具以及Java编程语言,Java编程语言是通常用于为此平台开...

Java怎么学?看完这篇文章就知道了

当今,Java编程在日常生活中的运用越来越广泛,相关岗位很有发展前景,因此不少人都想要学习Java。那今天咱们就来聊聊,Java怎么学?这个问题小编非常拿手,下面,我就给大家提供一份详细的Java学...

简单了解下Java中锁的概念和原理(java 锁的是什么)

你好,这里是codetrend专栏“高并发编程基础”。Java提供了很多种锁的接口和实现,通过对各种锁的使用发现理解锁的概念是很重要的。Java的锁通过java代码实现,go语言的锁通过go实现,py...

跟着振锁撸全栈之JAVA入门 | 创建自己的第一个网站项目

一、相关技术栈版本概览技术栈版本说明java≥17.0.2JDK版本springframework6.1.11JavaEE开发框架springboot3.3.2容器+MVC框架gradle8.9自动化...