gpt4 book ai didi

python - 以全大写单词开头的代码块的正则表达式?

转载 作者:行者123 更新时间:2023-12-01 05:15:06 24 4
gpt4 key购买 nike

我有一个文件,它呈现以下结构:

.
.
LAST_NAME_IN_CAPS_1, First_1 Cell Phone: 999-999-999
Address
Needham MA 02135
Status: Attender Marital: Married Adult: Y M/F: M Env.No.:

Salutation:


LAST_NAME_IN_CAPS_2, First_2 Cell Phone: 999-999-999
Address
Needham MA 02135
E-mail : email@gmail.com
Status: Attender Marital: Married Adult: Y M/F: F Env.No.:

Salutation:
.
.

行与行之间的信息变化很大,我想要的是获得一个正则表达式,该正则表达式采用两个大写单词之间大于3个字母(包括第一个大写单词)的代码块。在这种情况下,我想包含 LAST_NAME_IN_CAPS_1 以及 LAST_NAME_IN_CAPS_2 之前的所有内容,什么正则表达式可以处理这个问题?

最佳答案

假设仅使用 ASCII 字母,并且您的数据位于名为 text 的变量中,您应该能够使用如下内容:

import re
matches = re.findall(r'^[A-Z]{3}.*?(?=^[A-Z]{3}|\Z)', text, re.S | re.M)

re.S(或re.DOTALL)使得.将匹配换行符,re. M(或re.MULTILINE)标志使得^$分别在行的开头和结尾匹配而不仅仅是在字符串的开头和结尾。 \Z 是字符串末尾的 anchor ,(?=...) 是正向前瞻。

这里是这个正则表达式的作用的描述:
从以三个大写字符 (^[A-Z]{3}) 开头的行开始匹配,然后匹配任意数量的字符(尽可能少),包括换行符 (.*? ),直到能够匹配以三个大写字符开头的行的开头,或者到达字符串的末尾((?=^[A-Z]{3}|\Z) )。

关于python - 以全大写单词开头的代码块的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23393253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com