【问题标题】:How to extract the values of a,b of a string in the form of ?(a*p+b)/p**2如何以 ?(a*p+b)/p**2 的形式提取字符串的 a,b 的值
【发布时间】:2017-08-22 09:15:09
【问题描述】:

在python中给定一个字符串,格式为:

(a*p+b)/p**2

始终遵循这种格式,例如(3.02*p+4.12)/p**2我想提取a和b,在示例中为3.024.12

【问题讨论】:

    标签: python regex python-2.7 python-3.x


    【解决方案1】:

    您可以使用str.splitstr.strip

    >>> s = '(3.02+4.12*p)/p**2'
    >>> s.strip('(').split('*')[0].split('+')
    ['3.02', '4.12']
    

    更新

    如果模式过于复杂,您可以使用正则表达式:

    >>> s = '(3.02*p+4.12)/p**2'
    >>> re.findall(r'(\d+\.\d+)\*p\+(\d+.\d+)', s)[0]
    ('3.02', '4.12')
    

    【讨论】:

    • 对不起是'(3.02p+4.12*)/p**2'
    • 对不起它不起作用,因为它不是 3.02p 而是 3.02*p
    • @NancyM.Sheehan 更新
    • 完美!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2020-11-27
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多