ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

正则表达式入门(七)量词

2022-08-19 22:04:04  阅读:118  来源: 互联网

标签:尝试 字符 量词 懒惰 入门 正则表达式 匹配 贪心


复制代码
1
22
333
4444
55555
666666
7777777
88888888
999999999
0000000000
复制代码

将排列成直角三角形的数字粘贴到程序中。
贪心,懒惰和占有
量词本身是贪心的,贪心的量词会首先匹配整个字符串。尝试匹配时,它会选定尽可能多的内容,也就是整个输入。量词首次尝试匹配整个字符串,如果失败则回退一个字符后再尝试,这个过程叫做回溯。它每次回退一个字符,知道找到匹配内容或者没有字符尝试为止。
懒惰的意思就是它从目标的起始位置开始尝试寻找匹配,每次检查字符串的一个字符。最后它会尝试匹配整个字符串。要使一个量词成为懒惰的,必须在普通量词后添加一个问好?
占有量词会覆盖整个目标然后尝试寻找匹配内容,但它只尝试一次,不会回溯。占有量词就是在普通量词之后添加一个加号。

用*,+和?进行匹配
在工具中输入

.*

它会以贪心的方式匹配文本中的所有字符。*匹配任何字符零次或多次。
贪心的量词


匹配特定次数
使用花括号可以限制某个模式在某个范围内匹配的次数,未修饰的量词是贪心量词。
例如:

7{1}

会匹配第一次出现的7,要匹配一个或多个7,只需要加一个逗号:

7{1,}

所以,7+其实和7{1,}是一样的。
那么,7*其实和7{0,}是一样的。
最后,7?其实和7{0,1}是一样的
范围语法

懒惰量词

在工具中用?来匹配零个或一个5

5?

再加一个?使量词编程懒惰的

5??

现在它不匹配任何内容了,因为现在的模式是懒惰的。它不会强制匹配第一个5,懒惰的基本特性就是匹配尽可能少的字符。

试一下匹配零个或多个

5*?

它也不匹配任何内容,因为它选择匹配最少的次数,零次。

试一下匹配一个或多个

5+?

它匹配了一个5,它选择了最少的次数,一次。

使用m和n的方式也是一样的

5{2,5}?

它将匹配2个5,而不是5个。

如果你想匹配最少而不是最多的数目,就使用懒惰量词。

占有量词

占有式量词很像贪心式量词,它会选择尽可能多的内容,但它不回溯。它不会放弃找到的内容,它很自私。优点是速度快。

我们先匹配以零开头的多个零,然后再匹配以零结尾的多个零。

0.*+

所有零都被标亮了。

.*+0

不匹配任何内容。因为它没有回溯,一下子选定了所有的输入,不再回来查看。它一下子没有在结尾找到零,也不知该从哪里找起。

 

https://www.cnblogs.com/hahazexia/p/6001492.html

标签:尝试,字符,量词,懒惰,入门,正则表达式,匹配,贪心
来源: https://www.cnblogs.com/jmbt/p/16603414.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有