当前位置: 首页 > news >正文

正则表达式的语法

    如果要想灵活的运用正则表达式,必须了解其中各种元素字符的功能,元字符从功能上大致分为:
  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.lryc.cn/news/277186.html

相关文章:

  • MyBatis分页插件的实现原理
  • Winform、WPF如何解决前端卡死问题
  • python内app自动化测试的局限性,该如何破局?
  • k8s的node亲和性和pod亲和性和反亲和性 污点 cordon drain
  • IntelliJ IDEA如何使用固定地址公网远程访问本地Mysql数据库
  • GIT - 清除历史 Commit 瘦身仓库
  • 物联网产品中,终端、网关、协议、PaaS、SaaS之间的关系
  • 6款实用的Git可视化管理工具
  • python_selenium零基础爬虫学习案例_知网文献信息
  • MindSpore Serving基于昇腾910B实现大模型部署
  • mysql原理--InnoDB的Buffer Pool
  • Redis不同环境缓存同一条数据,数据内部值不同
  • MySQL之导入、导出远程备份
  • OpenGL学习笔记-Blending
  • 支持 input 函数的在线 python 运行环境 - 基于队列
  • 欧拉Euler release 21.10 (LTS-SP2)升级openssh至9版本记录
  • php 数组中的元素进行排列组合
  • Python从入门到网络爬虫(OS模块详解)
  • 人机交互不是人机融合智能
  • RabbitMQ解决消息丢失以及重复消费问题
  • docker 安装redis集群
  • 锂电池制造设备中分布式IO模块优势
  • Android Room数据库升级Migration解决方案
  • 离线安装docker和docker-compose
  • 奇怪的事情记录:外置网卡和外置显示器不兼容
  • 【大数据进阶第三阶段之Hive学习笔记】Hive基础入门
  • 第三代量子计算机交付,中国芯片开辟新道路,光刻机难挡中国芯
  • react native中使用tailwind并配置自动补全
  • 数据分析——火车信息
  • Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)