如何python正则表达式匹配以下?

Rol*_*ndo 1 python regex

1<assume tab here>Algebra I<assume tab here>START
1.1 What are the Basic Numbers? 1-1
Run Code Online (Sandbox Code Playgroud)

对于上面两行中的每一行,我如何正则表达式只匹配包括"?"在内的数字.从本质上讲,我想要以下几组:

["1", "Algebra I"]
["1.1", "What are the Basic Numbers?"]
Run Code Online (Sandbox Code Playgroud)

匹配所有内容,包括问号,或最多为"制表符".如何使用单个正则表达式执行此操作?

zx8*_*x81 5

这是一个简单的正则表达式:

^([\d.]+)\s*([^\t?]+\??)
Run Code Online (Sandbox Code Playgroud)

第1组是数字,第2组包含文本.

正则表达式可视化

要检索一个匹配:

match = re.search(r"^([\d.]+)\s*([^\t?]+\??)", s)
if match:
    mynumbers = match.group(1)
    myline = match.group(2)
Run Code Online (Sandbox Code Playgroud)

要迭代匹配,请从以下位置获取组1和组2:

reobj = re.compile(r"^([\d.]+)\s*([^\t?]+\??)", re.MULTILINE)
for match in reobj.finditer(s):
    # matched text: match.group()
Run Code Online (Sandbox Code Playgroud)