全网最易懂的正则表达式教程(3)- 量词
正则详细教程系列可以看此链接的文章哦
https://www.cnblogs.com/poloyy/category/1796055.html
量词(限定符)
代码/语法 | 说明 |
---|---|
* | 重复 0 次或更多次 |
+ | 重复 1 次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
- 简单来说,限定符就是可以让元字符重复匹配
- 毕竟每个元字符只能匹配一个字符,如果要匹配 100 个字符,难道要写 100 个元字符吗
- 这个时候用上元字符 + 限定符就可以解决这个问题了
* 的栗子
应该是最常用的限定符了
first
匹配文本 | yy12菠萝 |
正则表达式 | \w* |
匹配数量 | 1 |
匹配结果 | yy12 |
second
匹配文本 | yy1_菠 |
正则表达式 | .1* |
匹配数量 | 4 |
匹配结果 | y、y1、_、菠 |
third
匹配文本 | yy_菠萝 |
正则表达式 | \d*\w* |
匹配数量 | 1 |
匹配结果 | yy_ |
+ 的栗子
first
匹配文本 | yy12菠萝 |
正则表达式 | \w+ |
匹配数量 | 1 |
匹配结果 | yy12 |
second
匹配文本 | yy1112菠萝 |
正则表达式 | .1+ |
匹配数量 | 1 |
匹配结果 | y111 |
记住,限定符只对它前面一个元字符生效,这里是 1 ,所以是匹配一个 1 或者多个 1
third
匹配文本 | yy_菠萝 |
正则表达式 | \d+\w+ |
匹配数量 | 0 |
原因 | \d 起码需要匹配到一个数字,但没有 |
? 的栗子
first
匹配文本 | yy12菠 |
正则表达式 | \w? |
匹配数量 | 6 |
匹配结果 | y、y、1、2、空、空 |
second
匹配文本 | yy_12菠萝 |
正则表达式 | ._?.* |
匹配数量 | 1 |
匹配结果 | yy_12菠萝 |
_ 可有可无
third
匹配文本 | yy_121_2菠萝 |
正则表达式 | \d?. |
匹配数量 | 7 |
匹配结果 | y、y、_ 、12、1_ 、2菠、萝 |
{n} 的栗子
first
匹配文本 | yy12菠萝测试 |
正则表达式 | y{2}\d{1}\w.{2} |
匹配数量 | 1 |
匹配结果 | yy12菠萝 |
second
匹配文本 | 13501489999 |
正则表达式 | ^135\d{8}$ |
匹配数量 | 1 |
匹配结果 | 13501489999 |
third
匹配文本 | 023-81200222、023-81200223、023-81200224 |
正则表达式 | 0\d{2}-\d{8} |
匹配数量 | 3 |
匹配结果 |
023-81200222 023-81200223 023-81200224 |
{n,} 的栗子
first
匹配文本 | poloyy |
正则表达式 | y{1,} |
匹配数量 | 1 |
匹配结果 | yy |
second
匹配文本 | 13501489999 |
正则表达式 | ^135\d{1,}$ |
匹配数量 | 1 |
匹配结果 | 13501489999 |
third
匹配文本 | 023-81200222、023-81200223、023-81200224 |
正则表达式 | 0\d{1,}-\d{1,} |
匹配数量 | 3 |
匹配结果 |
023-81200222 023-81200223 023-81200224 |
{n,m} 的栗子
first
匹配文本 | poloyy菠萝 |
正则表达式 | yy菠1{0,1} |
匹配数量 | 1 |
匹配结果 | yy菠 |
second
匹配文本 | 13501489999 |
正则表达式 | ^135\d{1,8}$ |
匹配数量 | 1 |
匹配结果 | 13501489999 |
third
匹配文本 | 023-81200222、023-81200223、023-81200224 |
正则表达式 | 0\d{1,2}-\d{1,8} |
匹配数量 | 3 |
匹配结果 |
023-81200222 023-81200223 023-81200224 |