在Python 2.7中,我有以下字符串:
"$a first answer$b second answer$c third answer$d fourth answer$SOLUTION: a"
如何使用正则表达式正确解析它并将其存储在数组中,如下所示?
['first answer', 'second answer', 'third answer', 'fourth answer', 'a']
从我到目前为止所读到的内容,我相信我必须以某种方式编译我的正则表达式并使用match
方法对该字符串运行它,但我不确定如何执行此操作。
答案 0 :(得分:1)
x="$a first answer$b second answer$c third answer$d fourth answer$SOLUTION: a"
print [i for i in re.split(r"\$\S+",x) if i]
您只需split
即可完成。
答案 1 :(得分:1)
我会使用更复杂的正则表达式,它更适合您的特定情况:
s = "$a first answer$b second answer$c third answer$d fourth answer$SOLUTION: a"
print(filter(None, re.split(r"\$(?:[a-z]\b|SOLUTION:)\s*", s)))
这样可以降低过度匹配的风险,并会削减结果列表项。
请参阅IDEONE demo
如果您$
可选后跟:
后确实有任何字词,则可以使用
print(filter(None, re.split(r"(?i)\$[a-z]+\b:?\s*", s)))