首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Python提取特定子字符串- regex后面的文本。

使用Python提取特定子字符串- regex后面的文本。
EN

Stack Overflow用户
提问于 2020-04-23 23:29:37
回答 2查看 344关注 0票数 1

我对Regex非常陌生,所以我确信我遗漏了一些显而易见的东西,但需要解决以下问题。

我想从一个特定的子字符串中提取后面的字符串。我正在处理一个扫描文档列表,并有下面的示例字符串,我希望在"FORENAME“之后提取所有内容

这就是我到目前为止所做的:

代码语言:javascript
运行
复制
regex = r"(?<=(FORE))[A-Z]+"

test_str = 'UNIQUE NUMBER 12345 678910 11 FROM THIS DOCUMENT | . ISSUED ON 2011-04-04 FORENAME GUIDO    \\ SURNAME VAN ROSSUM.   '

matches = re.finditer(regex, test_str)

for matchNum, match in enumerate(matches, start=1):

    print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))

    for groupNum in range(0, len(match.groups())):
        groupNum = groupNum + 1

        print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))

返回以下内容:

代码语言:javascript
运行
复制
 Match 1 was found at 78-82: NAME
 Group 1 found at 74-78: FORE

我想要的是:

GUIDO \姓VAN ROSSUM。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-24 00:04:38

我想要的是: GUIDO \姓VAN ROSSUM。

基于上述,您可以使用:

代码语言:javascript
运行
复制
import re
test_str = 'UNIQUE NUMBER 12345 678910 11 FROM THIS DOCUMENT | . ISSUED ON 2011-04-04 FORENAME GUIDO    \\ SURNAME VAN ROSSUM.'
result = re.sub(r"^.*FORENAME(.*?)$", r"\1", test_str)
print(result)
#  GUIDO    \ SURNAME VAN ROSSUM.

演示

票数 0
EN

Stack Overflow用户

发布于 2020-04-24 02:23:09

对于这么简单的问题,你不需要正则表达式

代码语言:javascript
运行
复制
test_str = 'UNIQUE NUMBER 12345 678910 11 FROM THIS DOCUMENT | . ISSUED ON 2011-04-04 FORENAME GUIDO    \\ SURNAME VAN ROSSUM.   '

pos = test_str.find("FORENAME") + len("FORENAME")

print(test_str[pos:])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61398648

复制
相关文章

相似问题

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