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

学习记录—正则表达式-基本语法

正则表达式简介-《菜鸟教程》

正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。

正则表达式可以在文本中查找、替换、提取和验证特定的模式。

本期内容将介绍普通字符,特殊字符,限定符,定位符,贪婪和非贪婪几部分。

一.普通字符

  [    ] [a]    表示仅匹配字符a
  [^   ] [^a]   表示不匹配字符a
  [A-B][A-Z]  表示匹配A~Z区间内的大写字母
  [a-b][a-z]   表示 匹配a~z区间内的小写字母
      .  匹配除换行符(\n、\r)之外的任何单个字符(含空格等不可见字符)
[\s\S ]匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。
\w匹配字母、数字、下划线。
\d匹配任意一个阿拉伯数字(0 到 9)等价于 [0-9]

二.特殊符号

*匹配前面的子表达式零次或多次。
+匹配前面的子表达式一次或多次。
.匹配除换行符 \n 之外的任何单字符。
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。
|指明两项之间的一个选择。(可以理解为 或  ,即并集 )

注意:许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。

三.限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种.

*匹配前面的子表达式零次或多次。
+匹配前面的子表达式一次或多次。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
{n}n为非负整数,匹配确定的n
{n,}n为非负整数,至少匹配n
{n,m}nm为非负整数,至少匹配n次,至多匹配m

注意:限定符出现在范围表达式后,将应用于整个范围表达式。

四.定位符

定位符能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

\b:用于匹配字符边界

\B:用于匹配非字符边界

注意:定位符放在目标字符前,会在字符前查找,放在目标字符后,会在字符后查找。

五.贪婪与非贪婪

贪婪:匹配从开始小于符号 (<) 到关闭 h1 标记的大于符号 (>) 之间的所有内容。

非贪婪:只匹配开始和结束 h1 标签,下面的非贪婪表达式只匹配 <h1>。

* 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。

例如,可能仅希望查找在类HTML标签内的内容。

通过在 *+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配。


http://www.kler.cn/a/454209.html

相关文章:

  • Doris的SQL原理解析
  • 基于SpringBoot的4S店汽车销售管理系统的设计与实现
  • Triple三倍
  • 实战分享:开发设计文档模版及编写要点
  • 使用helm安装canal-server和canal-admin
  • 理解并使用 Linux 内核的字符设备
  • k8s,service如何找到容器
  • Visual Studio Code(VS Code)配置C/C++环境
  • 社交媒体形象打造中的“号设化”与开源AI智能名片商城小程序的应用
  • 嵌入式学习-QT-Day07
  • SQLite本地数据库的简介和适用场景——集成SpringBoot的图文说明
  • 【TaskBasics】- KRTS C++示例精讲(3)
  • 什么是 DevOps 自动化?
  • C++ STM32 F4xx USART LL库 DMA + IDLE ISR 驱动裸机 +FreeRTOS 任务通知
  • (六)循环神经网络_基本的RNN
  • Wireshark软件下载安装及基础
  • Nginx界的天花板-Oracle 中间件OHS 11g服务器环境搭建
  • JVM内存模型、垃圾回收机制及简单调优方式
  • 重温设计模式--10、单例模式
  • kubernetes存储架构之PV controller源码解读
  • 穿山甲等广告联盟依据哪些维度给APP、小程序结算广告变现收益
  • 【小菜鸟之—CEPH文件集群部署实践】
  • 【Redis】 数据淘汰策略
  • java中list和map区别
  • 国际版JAVA同城服务美容美发到店服务系统源码支持Android+IOS+H5
  • 计算机毕业设计Python+Spark知识图谱医生推荐系统 医生门诊预测系统 医生数据分析 医生可视化 医疗数据分析 医生爬虫 大数据毕业设计 机器学习