如何在 Python 中使用正则表达式通过括号拆分列表中的值?
How do I split values in a list by parenthesis using regex in Python?
我所说的按值拆分的意思是,假设一个列表有 1 个字符串值:
mylist = ["3+4(5-3)-(9+4)"]
我想拆分这些值,使它们成为单独的字符串值,例如:mylist = ["3+4", "(", 5-3", ")", "-", "(", "9-4", ")"]
到目前为止,我附加的下面代码做同样的事情,但在运算符之间拆分它所以如果我输入 ["3+3"]
,它将输出
mylist = ["3", "+", "3"]
import re
mylist = input("Equation: ")
mylist = re.compile("(?<=\d)([- + / *])(?=\d)").split(mylist)
我只是想让它对括号做同样的事情,因为在参数中添加括号会使正则表达式语法混乱。
试试这个:
>>> import re
>>> r = re.compile("([()])")
>>> r.split("abc(def(ghi)jkl")
['abc', '(', 'def', '(', 'ghi', ')', 'jkl']
>>>
正则表达式中的外括号导致分隔符保留为拆分列表的元素。
我所说的按值拆分的意思是,假设一个列表有 1 个字符串值:
mylist = ["3+4(5-3)-(9+4)"]
我想拆分这些值,使它们成为单独的字符串值,例如:mylist = ["3+4", "(", 5-3", ")", "-", "(", "9-4", ")"]
到目前为止,我附加的下面代码做同样的事情,但在运算符之间拆分它所以如果我输入 ["3+3"]
,它将输出
mylist = ["3", "+", "3"]
import re
mylist = input("Equation: ")
mylist = re.compile("(?<=\d)([- + / *])(?=\d)").split(mylist)
我只是想让它对括号做同样的事情,因为在参数中添加括号会使正则表达式语法混乱。
试试这个:
>>> import re
>>> r = re.compile("([()])")
>>> r.split("abc(def(ghi)jkl")
['abc', '(', 'def', '(', 'ghi', ')', 'jkl']
>>>
正则表达式中的外括号导致分隔符保留为拆分列表的元素。