我的文字如下
这是第一个问题,可以转到多个段落。
多行。等
(1)第一选择权(2)第二选择权(3)第三选择权(4)第四选择权(5)这些都不是
8×? = 4888÷4
(1)150.75(2)125.75(3)125.05(4)152.75(5)这些都不是
(62.5×14×5)÷25 + 41 =
(1)4(2)5(3)9(4)8(5)6
(23×23×23×23×23×23)×
(1)32(2)30(3)9(4)7(5)11
我想将其解析为不同的部分,以便我可以迭代for循环并获取每个问题并迭代每个答案。 规则是每个问题都以一行(^)开头的整数开头,然后是一个点。答案将以括号(1-5)括起来的整数1到5作为前缀。
我希望解析后的数据可以代表:
for item in parsed_data:
print item.text
for answer in item.answers:
print answer.text
如何使用python regex做到这一点?
答案 0 :(得分:1)
re.split()
:
#text is the variable with your text
text = text.strip()
questions = re.split(r'\d+\.',text)
questions = [x.strip() for x in questions if x != '']
final = [re.split(r'\(\d+\)',x) for x in questions]
for part in final:
question = part[0]
print question
for answer in part[1:]:
print answer