gpt4 book ai didi

python用逗号分割一个字符串而不是在矩阵表达式中

转载 作者:行者123 更新时间:2023-11-28 22:37:37 26 4
gpt4 key购买 nike

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

输入:

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)']

Demo

说明:

  • "(?<![[()][\d\w]),"g

    • (?<![[()][\d\w]) Negative Lookbehind - 断言不可能匹配下面的正则表达式

      • [[()]匹配下面列表中的单个字符 [()列表中的单个字符 [()从字面上看
      • [\d\w]匹配下面列表中的单个字符 \d匹配数字 [0-9] \w匹配任何单词字符 [a-zA-Z0-9_]

      ,匹配字符 , literally

      g修饰符:全局。所有比赛(第一场比赛不返回)

关于python用逗号分割一个字符串而不是在矩阵表达式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36353284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com