gpt4 book ai didi

python - 正则表达式在一行中以 CAPITAL 单词开始和结束,在 CAPITAL 单行单词中有几行

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:01 24 4
gpt4 key购买 nike

我想知道以下情况的正则表达式:

该字符串在单行中包含一个大写单词,前面有两个换行符。在那之后,有几行字母数字字母(可能是非 ASCII utf-8)或者可能是空行。我想捕获一行中以大写单词开头并在下一个大写单词行之前结束的整个部分。单行大写单词可能有重复。

我进行了很多探索和查找,但都失败了。

例子

ASDF
wqer rtre 34 $^&% fsfa
DDwrgd 43 er 1. ewrtfg
324rfegf 4gfgre

PIIPUU
gre tt HKH rre345
sdrfetre
ewrewrqwr werfewrt34vds

ret
gre
wretretertettre

PIIPUU
asdf reb dsfdsg
dsafdfbh rt3456 rge grefgreg
reretr erfret34 ef

retretretr

QWE
pritoy Fbhfg 45345 )*9
tret 345 gret54
retre 56 gre ger
retgrh 546ttre

MMNNBMB
aserew Sfjlkjf
gdf
rerettyrdfv re HFGHFFHF er
ergre ret retre
ret retretret

reg regrtgh rertgre tret

我想将所有符合条件的部分分开,如下所示:

ASDF
wqer rtre 34 $^&% fsfa
DDwrgd 43 er 1. ewrtfg
324rfegf 4gfgre
PIIPUU
gre tt HKH rre345
sdrfetre
ewrewrqwr werfewrt34vds

ret
gre
wretretertettre
PIIPUU
asdf reb dsfdsg
dsafdfbh rt3456 rge grefgreg
reretr erfret34 ef

retretretr
QWE
pritoy Fbhfg 45345 )*9
tret 345 gret54
retre 56 gre ger
retgrh 546ttre
MMNNBMB
aserew Sfjlkjf
gdf
rerettyrdfv re HFGHFFHF er
ergre ret retre
ret retretret

reg regrtgh rertgre tret

最佳答案

这个表达式很可能提取我们想要的输出:

(?=^[A-Z]+$)([\s\S]*?)(?=^[A-Z]+$)|([\s\S]*)

表达式在 this demo 的右上面板中进行了解释如果您想探索/简化/修改它。

测试

import re

regex = r"(?=^[A-Z]+$)([\s\S]*?)(?=^[A-Z]+$)|([\s\S]*)"

test_str = """

ASDF
wqer rtre 34 $^&% fsfa
DDwrgd 43 er 1. ewrtfg
324rfegf 4gfgre

QWE
pritoy Fbhfg 45345 )*9
tret 345 gret54
retre 56 gre ger
retgrh 546ttre

PIIPUU
gre tt HKH rre345
sdrfetre
ewrewrqwr werfewrt34vds

ret
gre
wretretertettre

MMNNBMB
aserew Sfjlkjf
gdf
rerettyrdfv re HFGHFFHF er
ergre ret retre
ret retretret

reg regrtgh rertgre tret

"""

print(re.findall(regex, test_str, re.MULTILINE))

输出

[('', ''), ('ASDF\nwqer rtre 34 $^&% fsfa\nDDwrgd 43 er 1. ewrtfg\n324rfegf 4gfgre\n\n', ''), ('', ''), ('QWE\npritoy Fbhfg 45345 )*9\ntret 345 gret54\nretre 56 gre ger\nretgrh 546ttre\n\n', ''), ('', ''), ('PIIPUU\ngre tt HKH rre345 \nsdrfetre\newrewrqwr werfewrt34vds\n\nret\ngre\nwretretertettre\n\n', ''), ('', ''), ('', 'MMNNBMB\naserew Sfjlkjf\ngdf\nrerettyrdfv re HFGHFFHF er\nergre ret retre \nret retretret \n\nreg regrtgh rertgre tret'), ('', '')]

关于python - 正则表达式在一行中以 CAPITAL 单词开始和结束,在 CAPITAL 单行单词中有几行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57106059/

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