正则表达式入门手册

贪婪匹配 —— *

预计阅读时间1 分 156 views

现在我们还是举上面的例子,

示例一:
正则表达式:E.*贼酷 // 表示匹配以E开头贼酷结尾,中间有一个未知字符的片段。
片段为:我的天啊!E先生,真是屁本事没有,斗图倒是有一手,贼酷,想学。
结果为:E先生,真是屁本事没有,斗图倒是有一手,贼酷

看到没有,我们只是加了一个字符”*”,就解决了我们上面无法确定中间字符数量不确定的问题,成功匹配出我们想要的字符,是不是贼6!

OK,那我来讲解一下”*”,它的作用就如上面示例所表现得,可以控制前面字符的匹配数量,匹配0个或者无数个,能够无限往后匹配,知道获取到最长并且符合要求的那段字符串,这也就是为什么叫它贪婪的原因。

我们再根据上面的例子重新描述一下,

示例一:
正则表达式:E.贼酷 // 表示匹配以E开头贼酷结尾,中间有一个未知字符的片段。
片段为:我的天啊!E先生,真是屁本事没有,斗图倒是有一手,贼酷,想学。
结果为:匹配失败

正则表达式:E.*贼酷 // 表示匹配以E开头贼酷结尾,中间有无数个未知字符的片段。
片段为:我的天啊!E先生,真是屁本事没有,斗图倒是有一手,贼酷,想学。
结果为:E先生,真是屁本事没有,斗图倒是有一手,贼酷

示例二:
正则表达式:E先*你好 // 表示匹配以E开头,你好结尾,中间有0或多个"先"字符的片段
片段为:hellow,E先先先你好!
结果为:E先先先你好

上面就“*”符号的作用,类似她的符号还有好几个常用的,如下,

符号作用示例
+匹配前面的字符至少一次或多次。“a+b” 可以匹配 “ab”、”aab”、”aaaaab” 等字符串,但不能匹配 “b”。
*匹配前面的字符零次或多次。“a*”可以匹配”ab”或者”b”,之所以可以匹配b,因为就算没有匹配到也算,匹配成功。

各位小伙伴们,可以自己去探索一下,具体使用。

OK,又掌握了一个重要工具,又距离成功迈向一大步,让我们继续探索之路吧!

Leave a Comment

分享此文档

贪婪匹配 —— *

或复制链接

内容