Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 如何使用re.split()在两个字符的实例上进行拆分?_Python_String_Split_Re - Fatal编程技术网

Python 如何使用re.split()在两个字符的实例上进行拆分?

Python 如何使用re.split()在两个字符的实例上进行拆分?,python,string,split,re,Python,String,Split,Re,我有要拆分表单的字符串: s=''0-1 | 0.0 | 0.0+-0.0 | 0.8+-0.8 | 0.0+-0.0 |-2.4+-2.4 | 5.9 |' 我想在|和+-的每个实例中拆分它,但不能单独拆分-。我正试图使用re.split()来执行此操作,因为正则split()函数不使用多个分隔符,但我无法理解正则表达式的语法 我尝试了以下方法: splitted=re.split(r'\\| |(+-)',s) 正如上面所说,可以使用括号来匹配括号中的表达式,但我得到了一个错误: 错误:无需

我有要拆分表单的字符串:

s=''0-1 | 0.0 | 0.0+-0.0 | 0.8+-0.8 | 0.0+-0.0 |-2.4+-2.4 | 5.9 |'

我想在
|
+-
的每个实例中拆分它,但不能单独拆分
-
。我正试图使用
re.split()
来执行此操作,因为正则
split()
函数不使用多个分隔符,但我无法理解正则表达式的语法

我尝试了以下方法:

splitted=re.split(r'\\| |(+-)',s)

正如上面所说,可以使用括号来匹配括号中的表达式,但我得到了一个错误:

错误:无需重复

您可以执行的操作

重新导入
s=“|0-1 | 0.0 | 0.0+-0.0 | 0.8+-0.8 | 0.0+-0.0 |-2.4+-2.4 | 5.9 |”
关于拆分(“s”)
第二个
|
不应包含任何空格。 还要注意,返回的列表将包含空字符串,因为
s
|
开头和结尾

重新导入
s=“|0-1 | 0.0 | 0.0+-0.0 | 0.8+-0.8 | 0.0+-0.0 |-2.4+-2.4 | 5.9 |”
关于拆分(“s”)
第二个
|
不应包含任何空格。
还请注意,返回的列表将包含空字符串,因为
s
|

开头和结尾只是为了好玩,您可以不用
regex
就可以这样做

以下是方法:

s = '|0-1|0.0|0.0+-0.0|0.8+-0.8|0.0+-0.0|-2.4+-2.4|5.9|'
print([j for i in s.split("|") for j in i.split("+-") if j])
输出:

['0-1', '0.0', '0.0', '0.0', '0.8', '0.8', '0.0', '0.0', '-2.4', '2.4', '5.9']

只是为了好玩,您可以不用
regex
就可以做到这一点

以下是方法:

s = '|0-1|0.0|0.0+-0.0|0.8+-0.8|0.0+-0.0|-2.4+-2.4|5.9|'
print([j for i in s.split("|") for j in i.split("+-") if j])
输出:

['0-1', '0.0', '0.0', '0.0', '0.8', '0.8', '0.0', '0.0', '-2.4', '2.4', '5.9']
还必须转义
“+”
r“\\\\+\-”
还必须转义
“+”
r“\\\\\+\-”