如何提取字符串中两个已知单词之间的文本,条件是这些单词之间的文本可以是i) 1字符ii) 1字iii) 2字等等?
样本文本:
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个单词的文本等等。那么,我如何提取与条件一起的文本呢?
发布于 2019-03-07 02:57:42
使用re.findall。
import re
re.findall('MNOTES(.*?)GEO', text)这导致:
[' - ', ' 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 ']编辑
若要获得特定数量的字符,请执行以下操作:
re.findall('MNOTES\s?(.{1})\s?GEO', text)结果在
['-', 'R']只有6-8个字符长的结果:
re.findall('MNOTES\s?(.{6,8})\s?GEO', text)结果:
['- GEO ', 'CASUAL C', 'R GEO ', '231-0045']https://stackoverflow.com/questions/55035234
复制相似问题