如何使用 re.split() 在两个字符的实例处拆分?
How to use re.split() to split at instances of two characters?
我有要拆分的字符串:
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)
上面说可以用圆括号来匹配圆括号中的表达式,但是我得到的错误是:
error: nothing to repeat
你可以做到
import 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("\||\+\-", 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']
我有要拆分的字符串:
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)
上面说可以用圆括号来匹配圆括号中的表达式,但是我得到的错误是:
error: nothing to repeat
你可以做到
import 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("\||\+\-", 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']