上下文:Python 3.4.3
我对正则表达式不是很好,而且我似乎无法找到一个强大的解决方案来解决这个问题re
。
假设我们有一个很长的patsy 公式,中间的某个地方是这样的表达式:
... + xvar + np.log(xvar)+xvar**2 + xvar2+ z...
Patsy 公式只是遵循良好规则的字符串,所以我想知道是否有人编写过/可以轻松编写一个强大的方法来从给定公式中删除特定术语?因此,例如:
>>> remove_term(long_formula, 'xvar')
... + np.log(xvar)+xvar**2 + xvar2+ z...
和
>>> remove_term(long_formula, 'xvar2')
... + xvar + np.log(xvar)+xvar**2 + z...
等等。这也需要对在右侧公式规范的开头/结尾有一个变量是健壮的。
我有限的 regex-foo 只产生如下内容:
re.sub('[^(]\s*xvar\s*',' FOUND IT ', 'y ~ xvar + np.log(xvar)')
也许是一个半复杂的 if/elsere.sub
情况?