【发布时间】:2018-08-24 11:31:02
【问题描述】:
我进行了很多研究,但找不到可以在以下条件下实现所需文本的正则表达式。
我有一大段文字,我想在一定条件下提取文字:
- 提取的文本应以单词列表开头。例如:苹果、香蕉、橙子、菠萝。
- 它应该以遇到其他三个单词中的任何一个并且前面有数字时结束。
- 只有在前面有数字时才应该开始提取。
示例文本:
我的包里有 2 个苹果,苹果是很好的食物。你嘘 每天吃苹果。这对健康非常有益。 3根香蕉也不错。 它可以减少脂肪。
以下是例外输出
我包里的苹果和苹果很棒......对健康有益。
香蕉也不错。它可以减少脂肪
所以,如果存在 2 个关键字,我希望创建 2 个文件,依此类推。
我尝试过的更新:
我尝试的正则表达式是:
(?=(\d+)(\s?)apple)(.*)(?=\d+\s?banana:?s)
我有两个问题:
在提取的文本中我不想要第一个数字
-
如果我有 4 个单词,如何使其动态化,我不必编写那么多组合,如果我们正在搜索苹果,则提取的文本保存在该变量中
Python 版本:3.5
你能帮我用一个正则表达式吗?
【问题讨论】:
-
如果您反对,请提供重复的问题。我很高兴删除这个问题,因为我已经完成了我的分析并且我是正则表达式的新手
-
您之所以被否决,是因为您没有尝试过任何代码,并希望整个代码由其他人编写。阅读正则表达式并花一些精力编写代码,然后如果您遇到困难,请回到这里并寻求解决方案。
-
@serbia99:添加了我到目前为止所尝试的内容
-
断章取意,单个正则表达式不是 "... 编写代码的一些努力...:,至少在我的书中没有。你已经读过minimal reproducible example?
-
老实说,整个事情都是关于一个好的正则表达式,这就是我正在尝试和发布的内容
标签: python regex python-3.x