我有CAS的一些输出,我想将这些东西分成三个,这里有一些示例输出:
' 1+2;\r\n\r(%o2) 3\r\n(%i3) '
'?\r\n\r\n\rpos;\r\n\r(%o1) 0\r\n(%i2) '
我想将输出分为三个部分:
\r\n\(%i\d+\)
我将如何分开它们?我在创建代码时遇到了麻烦。
编辑: 我希望即使分开这些部分后也能保留分号。
答案 0 :(得分:2)
这应该按照您的要求进行:
re.findall('^([^;]+);(.*)(\r\n\(%i\d+\).+)$', text, re.S)
要在第一组中包含分号,只需将其添加到分组括号中:
re.findall('^([^;]+;)(.*)(\r\n\(%i\d+\).+)$', text, re.S)
答案 1 :(得分:1)
我不确定你需要正则表达式:
In [31]: s = '?\r\n\r\n\rpos;\r\n\r(%o1) 0\r\n(%i2) '
In [32]: p1, _, p23 = s.partition(';')
In [33]: p2, _, p3 = p23.rpartition('\r\n')
In [34]: p1, p2, p3
Out[34]: ('?\r\n\r\n\rpos', '\r\n\r(%o1) 0', '(%i2) ')