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

2024-09-30 18:30:45 发布

您现在位置:Python中文网/ 问答频道 /正文

如何提取字符串中两个已知单词之间的文本,条件是这些单词之间的文本可以是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',但是它们之间的文本可以是任意数量的单词。你知道吗

有时我想提取两个已知单词之间只有一个字符的文本,有时提取两个已知单词之间有两个单词的文本,有时提取两个已知单词之间有6个单词的文本等等。, 那么,我怎样才能在这种情况下提取呢?你知道吗


Tags: 字符串text文本示例somerevision条件单词
1条回答
网友
1楼 · 发布于 2024-09-30 18:30:45

使用^{}。你知道吗

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']

相关问题 更多 >