如何以?(a*p + b)/ p**2的形式提取字符串的a,b的值

1 python regex python-2.7 python-3.x

给定python中的字符串形式为:

(a*p+b)/p**2
Run Code Online (Sandbox Code Playgroud)

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

Mos*_*oye 5

你可以使用str.splitstr.strip:

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

更新:

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

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