带有re.split()的python正则表达式

时间:2015-06-09 06:02:07

标签: python regex

我有这个字符串等式:

400-IF(3>5,5,5)+34+IF(4>5,5,6)

我想用字符串'IF(3>5,5,5)',分割它意味着'IF()'语法,所以这里我使用了两种if语法。

所以re.split()应该给出长度为2 ['400-', '+34+']

的列表

我制作re并使用如下。

re.split('IF[\(][0-9,a-z,A-Z,\$]*[\>|\<|=|/|%|*|^]?(.*)+[\,][0-9,a-z,A-Z,\$]*[\,][0-9,a-z,A-Z,\$]+[\)]', '400-IF(3>5,5,5)+34+IF(4>5,5,6)
')

但它没有回复正确答案。我re的错误是什么?我是re的新人。

任何人都可以在python中修改此re吗?

2 个答案:

答案 0 :(得分:1)

x="400-IF(3>5,5,5)+34+IF(4>5,5,6)"
print [i for i in re.split(r"IF\([^)]*\)",x) if i]

你可以简单地使用它。

答案 1 :(得分:1)

>>> z = '400-IF(3>5,5,5)+34+IF(4>5,5,6)'
>>> ' '.join(re.split(r'IF\(.*?\)',z)).split()
['400-', '+34+']