在 Python 中提取两个子字符串之间的字符串

关键词——它们在使用文本数据的许多领域中发挥着重要作用。检测这些单词将为程序在机器学习应用程序中需要执行的下一组操作铺平道路。在本文中,我们将探讨这样一个用例,其中使用 Python提取两个子字符串之间的字符串

在这种情况下,关键字将是子字符串,目标是找到位于子字符串之间的字符串。本文将使用以下短语进行演示。

input = "Recession – Expect the unexpected when things get worse before becoming better."

在本教程中,我们将演示四种不同的方法来完成此任务。让我们深入研究其中的每一个。

  • 使用索引函数和for循环
  • 使用find函数和for 循环
  • 将索引函数与切片一起使用
  • 将find函数与切片一起使用

方法 1:使用 index() 函数和 for 循环

我们将为索引函数和for 循环部署一个组合,以从输入句子中获取子字符串“when”和“before”之间的字符串。由于正在部署for 循环,让我们声明一个可以充当子字符串标记的变量,如下所示。

substr = " "
声明输入和子字符串变量

完成后就可以构建for 循环了。在循环中,我们将使用索引函数在到达目标关键字“when”和“before”的位置时提醒执行。子字符串变量也会递增,以考虑执行循环时将发生的迭代。

这是完整的代码

input = "Recession – Expect the unexpected when things get worse before becoming better."
substr = " "
for i in range(input.index("when")+len("when")+1,input.index("before")):
    substr = substr + input[i]
print(substr)

上述代码运行后,将返回位于目标子字符串之间的字符串。

Index-For 循环方法返回的字符串

方法 2:使用 find() 函数和 for 循环

对于那些不喜欢使用索引函数的人来说,可以使用一个替代函数来代替它——查找函数。与上述技术类似,声明输入并将子字符串变量设置为零后,就可以开始构建for循环了。

input = "Recession – Expect the unexpected when things get worse before becoming better."
substr = " "
for i in range(input.find("when")+len("when")+1,input.find("before")):
    substr = substr + input[i]
print(substr)
Find-For 循环方法返回的字符串

方法3:使用index()函数进行切片

可以用来提取两个子字符串之间的字符串的另一种变体是切片技术。但是,这种技术不能单独工作,不能与其他功能结合使用。具体来说就是索引函数。

人们还可以尝试针对变量声明子字符串,而不是直接在切片代码中声明它们,如下所示。

substr1 = "when"
substr2 = "before"

设置子字符串变量后,可以立即使用下面给出的代码开始切片操作。

input = "Recession – Expect the unexpected when things get worse before becoming better."
substr1 = "when"
substr2 = "before"
substr = input[input.index(substr1)+len(substr1)+1:input.index(substr2)]

这里的逻辑很简单。拉入输入并声明目标字符串所在的子字符串,然后让切片发挥其魔力。

索引切片方法返回的字符串

方法 4:使用 find() 函数进行切片

与上述技术类似,可以find函数替换索引函数,并部署相同的切片来提取子字符串之间的目标字符串,如下所示。

input = "Recession – Expect the unexpected when things get worse before becoming better."
substr1 = "when"
substr2 = "before"
substr = input[input.find(substr1)+len(substr1)+1:input.find(substr2)]
查找切片方法返回的字符串

结论:

现在我们已经到了本文的结尾,希望它详细介绍了使用 Python 查找任意两个子字符串之间的字符串的不同技术。这里有另一篇文章详细介绍了Python中数据类型从float64int64的转换。AskPython 中还有许多其他有趣且内容丰富的文章,可能对那些希望提高 Python 水平的人有很大帮助。Audere est Facere!


参考: