正则的贪婪匹配都是从右向左匹配的吗?

来源:3-2 正则表达式-1

慕少6518

2018-02-10

“boooooooobby123"

regex_str=".*(b.*b).*"

老师好,正则表达式的贪婪匹配都是从右往左匹配的话,括号右边的.*匹配的是y123,(b.*b)匹配的是bb,括号左边的.*匹配的是boooooooo    我这样理解对吗?

但是上面这个例子怎么能说明贪婪匹配的模式是尽量匹配出最长的字符串?

写回答

2回答

bobby

2018-02-15

匹配出最长的字符串 你可以理解为 找最后一个满足条件的最短的字符串

0
1
慕少6518
非常感谢!
2018-02-24
共1条回复

慕仔4295924

2018-03-26

regex_str=".*(b.*b).*"  //  .*='boooooooo'(最贪婪), b='b', .*= '', b='b',  .*='y123'

regex_str=".*?(b.*b).*"  //  .*?=''(懒惰了) , b='b', .*='oooooooob'(最贪婪) , b='b',  .*='y123'

regex_str=".*?(b.*?b).*"  //  .*?=''(懒惰了) , b='b', .*?='oooooooo'(懒惰了) , b='b',  .*='by123'(最贪婪)

这样理解对不对?

2
2
懵逼工程师
回复
光荣交白卷哥
老师的从右到左是懒的解释这么多了,算是个技巧吧,不过这种讲解太难理解,没有真正说明白贪婪的意思
2021-06-14
共2条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程