正则表达式(2)匹配规则

正则表达式的匹配规则定义了如何识别字符串中的特定模式。这些规则包括字符类匹配、元字符匹配、数量词、字符转义和分组。

字符类匹配

字符类匹配允许你指定一个字符集合,并匹配该集合中的任意单个字符。这是通过方括号 [] 来实现的。

  • 简单字符类[abc] 匹配 "a"、"b" 或 "c" 中的任意一个字符。

  • 范围字符类[a-z] 匹配任意小写字母,[0-9] 匹配任意数字。

  • 否定字符类[^abc] 匹配除了 "a"、"b"、"c" 之外的任意字符。

  • 多字符集合[abc123] 匹配 "a"、"b"、"c"、"1"、"2" 或 "3" 中的任意一个字符。

元字符匹配

元字符是正则表达式中具有特殊含义的字符,用于指定复杂的匹配模式。

  • .(点):匹配除换行符以外的任意单个字符。

  • ^:匹配输入字符串的开始位置。

  • $:匹配输入字符串的结束位置。

  • *:匹配前面的字符零次或多次。

  • +:匹配前面的字符一次或多次。

  • ?:匹配前面的字符零次或一次。

  • |:逻辑或操作符,匹配两个表达式中的任意一个。

数量词

数量词指定一个字符或字符组出现的次数。

  • n*:匹配前面的字符零次或多次(n 为任意正整数)。

  • n+:匹配前面的字符一次或多次(n 为任意正整数)。

  • n?:匹配前面的字符零次或一次(n 为任意正整数)。

  • n{m}:匹配前面的字符恰好 m 次(m 为任意正整数)。

  • n{m,}:匹配前面的字符至少 m 次。

  • n{m,n}:匹配前面的字符至少 m 次,最多 n 次。

字符转义

在正则表达式中,一些字符具有特殊含义。如果你想要匹配这些特殊字符本身,需要使用反斜杠 \ 进行转义。

  • \d:匹配一个数字字符(等同于 [0-9])。

  • \s:匹配任何空白字符(包括空格、制表符、换页符等)。

  • \w:匹配任何字母数字字符(等同于 [a-zA-Z0-9_])。

  • \n:匹配换行符。

  • \.:匹配点字符(.)。

分组

分组允许你将多个字符视为一个整体进行匹配和操作。

  • 捕获组(...) 将括号内的内容视为一个整体进行匹配,并且可以被后续引用。

  • 非捕获组(?:...) 将括号内的内容视为一个整体进行匹配,但不捕获匹配的内容。

  • 选择组(a|b) 匹配 "a" 或 "b"。

  • 反向引用\1 引用第一个捕获组匹配的内容。

相关推荐
Patrick在香港6 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
梦帮科技2 天前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
yume_sibai8 天前
正则表达式完全指南(基础语法 + 实战应用 + 性能优化 + 最佳实践)
开发语言·正则表达式·c#
研☆香9 天前
js中使用的正则表达式
开发语言·javascript·正则表达式
2601_9622935314 天前
浅学python | 正则表达式集锦
正则表达式·字符串匹配·python知识·浅学python·ip地址检查
2601_9622955814 天前
Python中正则表达式的知识汇总分享
python·正则表达式·模块·语法·匹配
启观川14 天前
Python基础-第 16 章 综合案例:客户信息管理系统
开发语言·笔记·python·正则表达式
2601_9622940514 天前
Python 操作 Word:如何查找、替换和批量修改文本
python·正则表达式·word·文档处理·查找替换
for_ever_love__18 天前
python基础语法学习: 正则表达式
python·学习·正则表达式
asdfg125896320 天前
一个例子通俗理解Java中正则表达式用法
java·正则表达式