如何找到子字符串字符串的一部分

时间:2018-12-19 19:35:20

标签: python string

我正在尝试获取方程式的一部分(只是一个字符串)。 所以我想要的是一种: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- *)件

1 个答案:

答案 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。