我想使用以下正则表达式捕获每个选项及其后面的文本。奇怪的是,正则表达式只捕获带有一位数的编号选项。任何帮助表示赞赏。
>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[([a-z]|[\d\+])\]\s+(.*)?\\r?\\n?', s,re.M)
[('a', 'Option a'), ('1', 'Option 2')]
答案 0 :(得分:1)
删除+符号前的反斜杠,以免意外逃脱。
经过一些修补后,我最终得到了
>>> import re
>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[(\w+)\]\s+(.*)', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]
答案 1 :(得分:1)
将[\d\+]
更改为\d+
,[\d\+]
将匹配单个数字或+
符号
>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[([a-z\d]+)\]\s+(.*)?\\r?\\n?', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]
答案 2 :(得分:1)