Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
python在矩阵表达式中不使用逗号拆分字符串_Python_Regex_String - Fatal编程技术网

python在矩阵表达式中不使用逗号拆分字符串

python在矩阵表达式中不使用逗号拆分字符串,python,regex,string,Python,Regex,String,我想拆分一个由逗号分隔的字符串,而不是在矩阵表达式中。 例如: 输入: value = 'MA[1,2],MA[1,3],der(x),x,y' 预期产出: ['MA[1,2]','MA[1,3]','der(x)','x','y'] 我尝试使用value.split(','),但它在[]内部拆分,我尝试使用一些正则表达式捕获[]内部使用此正则表达式提取的文本 import re re.split(r'\[(.*?)\]', value) 我不擅长正则表达式,任何建议都会有帮助您可以使用负

我想拆分一个由逗号分隔的字符串,而不是在矩阵表达式中。 例如:

输入:

value = 'MA[1,2],MA[1,3],der(x),x,y'
预期产出:

['MA[1,2]','MA[1,3]','der(x)','x','y']
我尝试使用
value.split(',')
,但它在
[]
内部拆分,我尝试使用一些正则表达式捕获
[]
内部使用此正则表达式提取的文本

import re
re.split(r'\[(.*?)\]', value)

我不擅长正则表达式,任何建议都会有帮助

您可以使用负回溯

>>> import re
>>> value1 = 'MA[1,2],MA[1,3],der(x),x,y'
>>> value2 = 'M[a,b],x1,M[1,2],der(x),y1,y2,der(a,b)'
>>> pat = re.compile(r'(?<![[()][\d\w]),')
>>> pat.split(value1)
['MA[1,2]', 'MA[1,3]', 'der(x)', 'x', 'y']
>>> pat.split(value2)
['M[a,b]', 'x1', 'M[1,2]', 'der(x)', 'y1', 'y2', 'der(a,b)']
>>重新导入
>>>值1='MA[1,2],MA[1,3],der(x),x,y'
>>>值2='M[a,b],x1,M[1,2],der(x),y1,y2,der(a,b)'
>>>pat=重新编译(r'(?)


我已经更新了我的尝试,我不擅长正则表达式,没有正则表达式我们还能用其他方法吗完美答案,谢谢