【问题标题】:How to use re.split() to split at instances of two characters?如何使用 re.split() 分割两个字符的实例?
【发布时间】:2021-02-19 16:28:58
【问题描述】:

我有要拆分的字符串:

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

【问题讨论】:

  • 也必须逃脱"+"r"\||\+\-"

标签: python string split python-re


【解决方案1】:

你可以的

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| 开头和结尾。

【讨论】:

    【解决方案2】:

    只是为了好玩,你可以不用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']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2015-04-13
      • 2022-11-23
      相关资源
      最近更新 更多