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

归根结底不优秀
2019-03-27
regex_str = ".*?(b.*b).*" #这样写是对的
match_obj = re.match(regex_str,line)
if match_obj:
print(match_obj.group(1))
regex_str = ".*(?b.*b).*" #为什么这样写就是错的
match_obj = re.match(regex_str,line)
if match_obj:
print(match_obj.group(1))
写回答
2回答
-
?是用来限定前面出现的字符的次数,但是这里前面出现的字符是"("这个是正则表达式的分组的起始符,这样?就不知道前面的字符是什么,这样就冲突了,
你这样将"("和")"转移了就是一个正常的字符了,这就不会报错 但是就无法取到数据了
112019-03-29 -
归根结底不优秀
提问者
2019-03-27
?是限定符,放在括号里的第一个不合适
012019-03-27
相似问题
老师好,正则的贪婪匹配是从右往左吗?
回答 3
非贪婪模式的?添加位置规则
回答 2
正则的贪婪匹配都是从右向左匹配的吗?
回答 2
正则表达式匹配方向
回答 1
获取两字符中间的正则表达式
回答 1