【问题标题】:re.split parameters aren't working like guides say?re.split 参数不像指南所说的那样工作?
【发布时间】:2021-11-28 05:48:04
【问题描述】:
x="3x^2+2x-1"
x=re.split(r"[\^]|([-])|[+]", x)
print(x)
#returns: ['3x', None, '2', None, '2x', '-', '1']

我认为它应该返回类似 ['3x','2','2x','-','1'] 的内容。对不起,我确定我只是误会了。谢谢!

【问题讨论】:

    标签: python split python-re


    【解决方案1】:

    您用于拆分的正则表达式模式中有一个捕获组,但它仅包含减号运算符。只需在捕获组内拆分字符类([\^*/+-])。这将拆分任何运算符,但也会将该运算符包含在输出列表中。

    x = "3x^2+2x-1"
    x = re.split(r"([\^*/+-])", x)
    print(x)  # ['3x', '^', '2', '+', '2x', '-', '1']
    

    【讨论】:

      【解决方案2】:
      x = [y for y in re.split(r"[\^]|([-])|[+]", x) if y != None]
      

      我不是 RegEx 向导,但您可以删除所有无。

      【讨论】:

        猜你喜欢
        • 2015-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-08
        • 1970-01-01
        • 1970-01-01
        • 2017-11-12
        • 1970-01-01
        相关资源
        最近更新 更多