我正在尝试获取方程式的一部分(只是一个字符串)。
所以我想要的是一种:string.find('s(n-',*,')')
。这样我将找到s(n-5)
或s(n-20)
我已经用fnmatch尝试了一些东西,但是效果不佳
end = equation.find(")") + 1
for letter in equation:
if letter not in operators and letter not in str_ints:
start = start + 1
else:
break
function_bit = equation[start: end]
所以我想提取长字符串中s(n- *)的每一位
所以我得到了一个像这样的字符串:“(9/2)* s(n-2)+(3/2)* s(n-3)-5 * s(n-4)-3 * s( n-5)+(n-5)** 2-3 *(n-5)+7“
并且需要切碎所有s(n- *)件
答案 0 :(得分:3)
为此,我建议使用正则表达式:
In [6]: import re
In [7]: s = "s(n-5) somethingelse s(n-20)"
In [9]: res = re.findall("s\(n-\d+\)", s)
In [10]: for r in res:
...: print(r)
...:
s(n-5)
s(n-20)
您可以找到正则表达式文档here。一旦您了解正则表达式,它就会非常强大,因此值得花一些时间来学习IMO。