Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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_List_Split_Parentheses - Fatal编程技术网

如何在Python中使用正则表达式按括号拆分列表中的值?

如何在Python中使用正则表达式按括号拆分列表中的值?,python,regex,list,split,parentheses,Python,Regex,List,Split,Parentheses,我所说的“按值拆分”是指假设列表有1个字符串值: mylist=[3+45-3-9+4] 我想拆分这些值,使它们成为单独的字符串值,如:mylist=[3+4,5-3,-,9-4,] 到目前为止,我所附的下面代码也做了同样的事情,但是在操作符之间进行了拆分,所以如果我输入[3+3],它将输出 mylist=[3,+,3] 我只是想让它对括号做同样的事情,因为在参数中添加括号会弄乱正则表达式的语法。试试这个: >>> import re >>> r = re.c

我所说的“按值拆分”是指假设列表有1个字符串值: mylist=[3+45-3-9+4]

我想拆分这些值,使它们成为单独的字符串值,如:mylist=[3+4,5-3,-,9-4,]

到目前为止,我所附的下面代码也做了同样的事情,但是在操作符之间进行了拆分,所以如果我输入[3+3],它将输出

mylist=[3,+,3]

我只是想让它对括号做同样的事情,因为在参数中添加括号会弄乱正则表达式的语法。

试试这个:

>>> import re
>>> r = re.compile("([()])")
>>> r.split("abc(def(ghi)jkl")
['abc', '(', 'def', '(', 'ghi', ')', 'jkl']
>>> 
正则表达式中的外圆括号将分隔符保留为拆分列表的元素。

尝试以下操作:

>>> import re
>>> r = re.compile("([()])")
>>> r.split("abc(def(ghi)jkl")
['abc', '(', 'def', '(', 'ghi', ')', 'jkl']
>>> 

正则表达式中的外圆括号将分隔符保留为拆分列表的元素。

谢谢您的回答。是否可以像我上面提供的代码那样,将括号拆分与运算符拆分结合起来?重新编译代码两次,这会给我一个列表中的列表。我试图以一个列表结束。你可以在方括号[]中放入任何你想要的字符。只要运算符是单个字符,就应该可以使用。例如,您可以使用[+-/*]。如果还希望拆分空间,可以添加单个空间,它们将显示在拆分列表中。不要像在帖子中那样添加多个空格。每个角色要么在场,要么不在场,所以重复它们是没有意义的。谢谢,这非常有帮助。还有一件事,您为我提供了~r.split“text”~但是当我在那里插入变量时,结果列表的开头和结尾都有额外的空格。例如,~mylist=[“”、“3”、“+”、“3”、“]~@您是否将数字包含为拆分字符?当字符串中的第一个或最后一个字符与正则表达式匹配时,会出现前导和尾随空字符串。使用变量和固定字符串没有区别,如果字符串相同,则两者的行为相同。嗨,汤姆。我注意到空字符串只在有括号时出现,并且只在括号之前或之后出现。例如,3+33=['3','+','3','3',]。另外,你能解释一下把数字作为分割字符是什么意思吗?我该怎么做呢。谢谢,谢谢你的回答。是否可以像我上面提供的代码那样,将括号拆分与运算符拆分结合起来?重新编译代码两次,这会给我一个列表中的列表。我试图以一个列表结束。你可以在方括号[]中放入任何你想要的字符。只要运算符是单个字符,就应该可以使用。例如,您可以使用[+-/*]。如果还希望拆分空间,可以添加单个空间,它们将显示在拆分列表中。不要像在帖子中那样添加多个空格。每个角色要么在场,要么不在场,所以重复它们是没有意义的。谢谢,这非常有帮助。还有一件事,您为我提供了~r.split“text”~但是当我在那里插入变量时,结果列表的开头和结尾都有额外的空格。例如,~mylist=[“”、“3”、“+”、“3”、“]~@您是否将数字包含为拆分字符?当字符串中的第一个或最后一个字符与正则表达式匹配时,会出现前导和尾随空字符串。使用变量和固定字符串没有区别,如果字符串相同,则两者的行为相同。嗨,汤姆。我注意到空字符串只在有括号时出现,并且只在括号之前或之后出现。例如,3+33=['3','+','3','3',]。另外,你能解释一下把数字作为分割字符是什么意思吗?我该怎么做呢。谢谢