Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带re.split()的python正则表达式_Python_Regex - Fatal编程技术网

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

带re.split()的python正则表达式,python,regex,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)
我想用字符串
'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.split('IF[\(][0-9,a-z,a-z,\$]*[\>\5,5)+34+IF(4>5,5,6)
')
但是它没有返回正确的答案。我的
re
有什么错误。我是
re
的新手

任何人都可以在python中修改这个
re

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]

你可以简单地使用它。

@Robert Grant i need if(),里面有东西。所以当你说它应该给出
['400-','+34+']
(这不是带东西的IFs)你是什么意思?你应该用字符串像'if(3>5,5,5)'那样拆分它,所以总之,你不需要if()里面有东西,你需要其他东西吗?
>>> z = '400-IF(3>5,5,5)+34+IF(4>5,5,6)'
>>> ' '.join(re.split(r'IF\(.*?\)',z)).split()
['400-', '+34+']