正则表达式的语法

    如果要想灵活的运用正则表达式,必须了解其中各种元素字符的功能,元字符从功能上大致分为:
  1. 限定符
  2. 选择匹配符
  3. 分组组合和反向引用符
  4. 特殊字符
  5. 字符匹配符
  6. 定位符

    我们先说一下元字符的转义号

  • 元字符(Metacharacter)-转义号 \\

    \\ 符号 说明:在我们使用正则表达式去检索某些特殊字符的时候,需要用到转义符号,否则检索不到结果,甚至会报错。

案例1:用$去匹配"abc$("会怎样?

案例2:用(去匹配"abc$("会这样?

再次提示:

    在java中的正则表达式中,两个\\代表其他语言中的一个\

代码演示:

import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** 分析java的正则表达式的语法(重要)*/
public class RegGrammar {public static void main(String[] args) {String content = "abc$(abc(123(";// 匹配(String regStr = "\\(";Pattern pattern = Pattern.compile(regStr);Matcher matcher = pattern.matcher(content);while (matcher.find()) {System.out.println("找到:" + matcher.group(0));}}
}

运行结果:

需要用到转义符号的字符有以下:

.  *  +  (  )  $  /  \  ?  [  ]  ^  {  } 
 

  • 元字符-字符匹配符

        备注:  

        在正则表达式中,?+* 是量词,用于指定匹配模式的重复次数。它们的区别如下:

  1. ?(问号):表示前面的元素在模式中可以出现零次或一次。换句话说,它表示前面的元素是可选的。

    例如:

    • ab? 匹配 "a" 或 "ab"。
    • a?b 匹配 "b" 或 "ab"。
  2. +(加号):表示前面的元素在模式中必须至少出现一次,但可以重复多次。

    例如:

    • ab+ 匹配 "ab"、"abb"、"abbb" 等,但不匹配 "a"。
    • a+b 匹配 "ab"、"aab"、"aaab" 等,但不匹配 "b"。
  3. *(星号):表示前面的元素在模式中可以出现零次或多次。

    例如:

    • ab* 匹配 "a"、"ab"、"abb"、"abbb" 等,包括空字符串。
    • a*b 匹配 "b"、"ab"、"aab"、"aaab" 等,包括空字符串。

        总的来说,? 表示零次或一次,+ 表示至少一次,* 表示零次或多次。这些量词用于构建更灵活和强大的正则表达式模式,以适应不同的匹配要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/235483.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【K8S 存储卷】K8S的存储卷+PV/PVC

目录 一、K8S的存储卷 1、概念: 2、挂载的方式: 2.1、emptyDir: 2.2、hostPath: 2.3、NFS共享存储: 二、PV和PVC: 1、概念 2、请求方式 3、静态请求流程图: 4、PV和PVC的生命周期 5、…

【分布式】分布式链路跟踪技术

为什么需要分布式链路追踪 提到分布式链路追踪,我们要先提到微服务。相信很多人都接触过微服务。微服务是一种开发软件的架构和组织方法,它侧重将服务解耦,服务之间通过API通信。使应用程序更易于扩展和更快地开发,从而加速新功能…

PiflowX-MysqlCdc组件

MysqlCdc组件 组件说明 MySQL CDC连接器允许从MySQL数据库读取快照数据和增量数据。 计算引擎 flink 组件分组 cdc 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子hostnameHostname“”无是MySQL…

机器学习周刊 第4期:动手实战人工智能、计算机科学热门论文、免费的基于ChatGPT API的安卓端语音助手、每日数学、检索增强 (RAG) 生成技术综述

LLM开发者必读论文:检索增强(RAG)生成技术综述! 目录: 1、动手实战人工智能 Hands-on Al2、huggingface的NLP、深度强化学习、语音课3、Awesome Jupyter4、计算机科学热门论文5、LLM开发者必读论文:检索增强 (RAG) 生…

工业智能网关如何保障数据通信安全

工业智能网关是组成工业物联网的重要设备,不仅可以起到数据交换、通信、边缘计算的功能,还可以发挥数据安全保障功能,保障工业物联网稳定、可持续。本篇就为大家简单介绍一下工业智能网关增强和确保数据通信安全的几种措施: 1、软…

UE4 4.21-4.27使用编辑器蓝图EditorBlueprint方法

在UE4 4.21中,编辑器蓝图(Editor Blueprint)是一个强大的工具,允许开发者扩展和自定义Unreal编辑器的功能。通过编辑器蓝图,我们可以创建自定义的工具和功能,以优化开发流程。 本教程将指导您如何在UE4 4.…

如何顺滑使用华为云编译构建平台?

这两年平台构建服务需求越来越大,却一直苦于找不到一些指南, 这里特意写了一篇, 对在学习代码阶段和新手程序员朋友也蛮友好, 配置真的也不难, 也特别适合想尝试从0到1做个APP的朋友了。 以华为云的CodeArts Build为例…

mysql服务多实例运行

1、官网下载mysql安装包 https://downloads.mysql.com/archives/community/ 2、解压安装包 tar -zxvf mysql-8.1.0-linux-glibc2.28-aarch64.tar.xz -C /usr/localmv /usr/local/mysql-8.1.0-linux-glibc2.28-aarch64 /usr/local/mysql 3、创建mysql用户组 groupadd…

Js--数组(三)

1.什么是数组? 数组:(Array)是一种可以按顺序保存数据的数据类型 2.为什么要数组? 思考:如果我想保存一个班里所有同学的姓名怎么办? 场景:如果有多个数据可以用数组保存起来,然后放到一个变量…

Live800:客户服务中的AI辅助培训与员工成长

随着科技的发展,人工智能(AI)技术已经广泛应用于各个行业,其中包括客户服务领域。以下是关于如何运用AI技术辅助客服人员进行培训和学习,提高员工的专业素质和服务能力的详细探讨。 一、AI在客户服务中的应用 AI技术在…

安卓版本与鸿蒙将不再兼容,鸿蒙工程师究竟有多抢手?

年薪最高160万! 鸿蒙工程师究竟有多抢手? 套壳安卓”的质疑言犹在耳,如今华为正在计划将鸿蒙OS与安卓完全脱离。 此前,鸿蒙OS为了迅速扩大用户规模,采取了兼容安卓的策略。而如今,已有数亿设备搭载的鸿蒙…

短视频发展电商,哪个平台更占优势,新手如何选择?

我是电商珠珠 众所周知,自19年抖音开始发展短视频时,短短两年的时间,就将电商圈拉高了一个度。 20年是抖音发展的鼎盛时期,也是很多新手容易财富自由的时期,平台的各项红利都纷纷向商家靠拢。 如今已经发展了四年的…

Ubuntu22.04开机左上角下划线闪烁不开机

按下CtrlAltF2,打开TTY系统,然后通过用户名和密码登录,随后使用 sudo apt --fix-broken install 根据提示排除错误信息,然后使用apt安装lightdm安装就行。 tips:当使用EasyConnect的时候,你可能参考了下面这篇文章知…

中国京津冀国际光伏展

中国京津冀国际光伏展是一个为光伏行业搭建交流合作平台的国际展览会。该展览会主要展示光伏发电技术、光伏产品、光伏材料、光伏设备等相关领域的最新产品和技术。展会吸引了来自国内外光伏行业的企业、专家和观众参与,为他们提供了一个了解行业最新动态、展示自身…

Kafka之集群搭建

1. 为什么要使用kafka集群 单机服务下,Kafka已经具备了非常高的性能。TPS能够达到百万级别。但是,在实际工作中使用时,单机搭建的Kafka会有很大的局限性。 ​ 消息太多,需要分开保存。Kafka是面向海量消息设计的,一个T…

Linux 简述

文章目录 1. 背景2. Linux 环境搭建2.1 环境搭建方式2.2 使用云服务器2.3 使用终端软件连接到 Linux 3. Linux 常用命令3.1 ls3.2 cd3.3 pwd3.4 touch3.5 cat3.6 echo3.7 vim3.8 mkdir3.9 rm3.10 mv3.11 cp3.12 grep3.13 ps3.14 netstat 4. 搭建 Java 部署环境4.1 jdk4.2 tomca…

发表《Optics Express》玻色量子联合天津大学实现5比特全光量子随机数发生器

2023年11月,北京玻色量子科技有限公司(以下简称“玻色量子”)联合天津大学在学术期刊《Optics Express》上发表了以“5-bit all-optical quantum random number generator based on a time-multiplexed optical parametric oscillator”&…

使用 gitee+sphinx+readthedocs 搭建个人博客

给大家安利如何快速搭建个人博客网站! 前言 这是我本地运行的一个使用sphinx构建的博客服务,这些文章,都是用markdown写的。 一直有个想法,就是把自己写的这些文件,搞成一个博客网站,放到网上&#xff0c…

Qt中QGraphicsView总体架构学习

前沿 前段时间学习了下如何在QGraphicsView架构中绘制刻度尺,主要是与OnPainter中进行比较的,那么今天就来详细讲解下我对QGraphicsView框架的认知吧~ 最近一段时间想学习下,如果我有不正确的,欢迎留言探讨哟~ QGraphicsView架…

kubeSphere DevOps自定义容器环境JDK11

kubeSphere DevOps自定义容器环境JDK11 🍂前言🍂增加JDK11容器环境🍁检查是否成功 🍂不生效的原因排查🍁按步骤执行如下命令 🍂前言 kubeSphere 版本v3.1.1 遇到问题:kubeSphere默认支持容器只有JDK8,目前…