网站首页 > 技术文章 正文
在正则表达式中,量词(也称为限定符)用于指定前面的字符、字符集或子表达式出现的次数。以下是常见的量词及其用法:
1.`*`(零次或多次)
o 含义:匹配前面的字符或表达式零次或多次。
o 示例:
o 正则表达式:`a*`
o 匹配内容:`""`(空字符串)、`"a"`、`"aa"`、`"aaa"`等。
o 正则表达式:`[0-9]*`
o 匹配内容:`""`(空字符串)、`"0"`、`"12"`、`"345"`等。
2.`+`(一次或多次)
o 含义:匹配前面的字符或表达式一次或多次。
o 示例:
o 正则表达式:`a+`
o 匹配内容:`"a"`、`"aa"`、`"aaa"`等,但不匹配空字符串。
o 正则表达式:`[0-9]+`
o 匹配内容:`"0"`、`"12"`、`"345"`等,但不匹配空字符串。
3.`?`(零次或一次)
o 含义:匹配前面的字符或表达式零次或一次。
o 示例:
o 正则表达式:`a?`
o 匹配内容:`""`(空字符串)、`"a"`。
o 正则表达式:`ab?c`
o 匹配内容:`"ac"`、`"abc"`。
4.`{n}`(恰好n次)
o 含义:匹配前面的字符或表达式恰好n次。
o 示例:
o 正则表达式:`a{3}`
o 匹配内容:`"aaa"`。
o 正则表达式:`[0-9]{4}`
o 匹配内容:`"1234"`、`"5678"`等,但不匹配少于4位或超过4位的数字。
5.`{n,}`(至少n次)
o 含义:匹配前面的字符或表达式至少n次。
o 示例:
o 正则表达式:`a{2,}`
o 匹配内容:`"aa"`、`"aaa"`、`"aaaa"`等。
o 正则表达式:`[0-9]{3,}`
o 匹配内容:`"123"`、`"4567"`等,但不匹配少于3位的数字。
6.`{n,m}`(至少n次,最多m次)
o 含义:匹配前面的字符或表达式至少n次,最多m次。
o 示例:
o 正则表达式:`a{2,4}`
o 匹配内容:`"aa"`、`"aaa"`、`"aaaa"`,但不匹配`"a"`或`"aaaaa"`。
o 正则表达式:`[0-9]{1,3}`
o 匹配内容:`"1"`、`"12"`、`"123"`,但不匹配`""`或`"1234"`。
7.贪婪与非贪婪量词
o 贪婪量词:默认情况下,量词(如`*`、`+`、`{n,m}`等)是贪婪的,会尽可能多地匹配字符。
o 示例:正则表达式`a.*b`在字符串`"a123b456b"`中会匹配`"a123b456b"`。
o 非贪婪量词:在量词后面加上`?`,表示非贪婪匹配,会尽可能少地匹配字符。
o 示例:正则表达式`a.*?b`在字符串`"a123b456b"`中会匹配`"a123b"`。
8.特殊情况
o `*?`、`+?`、`??`:分别对应非贪婪的零次或多次、一次或多次、零次或一次。
o `{n,m}?`:非贪婪的量词,匹配尽可能少的字符。
猜你喜欢
- 2025-03-20 正则表达式学习之替换分组练习(正则匹配并替换)
- 2025-03-20 「正则表达式」 一、正则表达式字符匹配(前端必懂 )
- 2025-03-20 人人都看得懂的正则表达式教程(正则表达式 详解)
- 2025-03-20 这几种正则表达式的“字符集合”,想要入门regexp函数,必须了解
- 2025-03-20 这几个冷门到你没听过的App,好用到为你打开新世界大门
- 2025-03-20 java正则-取出指定字符串之间的内容
- 2025-03-20 Excel VBA【案例】正则表达式提取中文字符/五笔字型编码文本整理
- 2025-03-20 小心别落入正则回溯陷阱(正则表达式回溯陷阱)
- 2025-03-20 测试文章,为评论转发而生(测试评论功能)
- 2025-03-20 别再把shell中命令行的glob当做正则了
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)