这是我拥有的字符串(忽略空格)
a = u'(%o3) (9*t*(7*t*(5*t*(3*t^2-1)/2-2*t)/3-3*(3*t^2-1)2)/4-4\r\n*(5*t*(3*t^2-1)2 \r\n-2*t)\r\n/3)\r\n /5\r\n(%i4) '
我将如何将其拆分为如下内容:
b = ['(%o3','(9*t*(7*t*(5*t*(3*t^2-1)/2-2*t)/3-3*(3*t^2-1)2)/4-4\r\n*(5*t*(3*t^2-1)2\r\n-2*t)\r\n/3)\r\n /5','(%i4)' ]
这有点像检查模式 (%o\d+) 和 (%i\d+) 并在它们发生的地方拆分但不会丢失模式本身,a.split(blah) 通常会丢失“blah”。在我的上下文中,“废话”很重要,我不能放弃它。
模式的出现可能超过 2 次,因此我需要将 (%o\d+) 和 (%i\d+) 以及它们之间/之前的任何文本分开。最好的方法是什么?我不确定正则表达式是否可以做到这一点,或者对 text.split 的现有修改不会丢失 split 参数(如果存在)