正则表达式的贪婪
来源: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
相似问题