?表示非贪婪模式,例子:
提取首次出现的两个b之间的字符串
正确代码:
import re
line = 'boaabby123'
regex_str = ".*?(b.*?b).*"
#regex_str 匹配规则
# ^ 表示以某个字符串开头
# . 表示任意字符
# * 表示这个字符可以重复任意多次
# $ 表示以某个字符结尾
# ? 表示以非贪婪模式匹配
match_str = re.match(regex_str,line)
if match_str:
print (match_str.group(1))
输出:boaab
错误代码一(留意问号的位置)
import re
line = 'boaabby123'
regex_str = ".*?(b.*b).*"
#regex_str 匹配规则
# ^ 表示以某个字符串开头
# . 表示任意字符
# * 表示这个字符可以重复任意多次
# $ 表示以某个字符结尾
# ? 表示以非贪婪模式匹配
match_str = re.match(regex_str,line)
if match_str:
print (match_str.group(1))
输出:boaabb
错误代码二:(留意问号的位置)
import re
line = 'boaabby123'
regex_str = ".*(b.*?b).*"
#regex_str 匹配规则
# ^ 表示以某个字符串开头
# . 表示任意字符
# * 表示这个字符可以重复任意多次
# $ 表示以某个字符结尾
# ? 表示以非贪婪模式匹配
match_str = re.match(regex_str,line)
if match_str:
print (match_str.group(1))
输出:bb