首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python如何提取字符串中两个已知单词之间的文本?

python如何提取字符串中两个已知单词之间的文本?
EN

Stack Overflow用户
提问于 2019-03-07 02:43:05
回答 1查看 3.2K关注 0票数 2

如何提取字符串中两个已知单词之间的文本,条件是这些单词之间的文本可以是i) 1字符ii) 1字iii) 2字等等?

样本文本:

代码语言:javascript
复制
text = ("MNOTES - GEO GEO MNOTES 20 231-0005 GEO GEO GEO GEO GEO MNOTES SOME REVISION MNOTES CASUAL C GEO GEO GEO GEO GEO MNOTES F232322500 MNOTES HELP PAGES GEO GEO GEO GEO MNOTES SHEET 1 OF 3 GEO GEO MNOTES CASUAL E. GEO GEO MNOTES SITPOPE/TIN AY GEO GEO MNOTES R GEO GEO GEO GEO MNOTES 22+0436/T.SKI/11-AUG-1986 GEO GEO GEO GEO MNOTES 231-0045 GEO")

我有一个类似于上面的字符串,它多次出现这两个已知的单词'MNOTES''GEO',但是它们之间的文本可以是任何东西和任意数量的单词。

我有时想提取两个已知单词之间只有一个字符的文本,有时是在这两个已知单词之间有2个单词的文本,有时是在这两个已知单词之间有6个单词的文本等等。那么,我如何提取与条件一起的文本呢?

EN

回答 1

Stack Overflow用户

发布于 2019-03-07 02:57:42

使用re.findall

代码语言:javascript
复制
import re

re.findall('MNOTES(.*?)GEO', text)

这导致:

代码语言:javascript
复制
[' - ', ' 20 231-0005 ', ' SOME REVISION MNOTES CASUAL C ', ' F232322500 MNOTES HELP PAGES ', ' SHEET 1 OF 3 ', ' CASUAL E. ', ' SITPOPE/TIN AY ', ' R ', ' 22+0436/T.SKI/11-AUG-1986 ', ' 231-0045 ']

编辑

若要获得特定数量的字符,请执行以下操作:

代码语言:javascript
复制
re.findall('MNOTES\s?(.{1})\s?GEO', text)

结果在

代码语言:javascript
复制
['-', 'R']

只有6-8个字符长的结果:

代码语言:javascript
复制
re.findall('MNOTES\s?(.{6,8})\s?GEO', text)

结果:

代码语言:javascript
复制
['- GEO ', 'CASUAL C', 'R GEO ', '231-0045']
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55035234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档