gpt4 book ai didi

python - 使用正则表达式删除字符串中的重复单词

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:50 27 4
gpt4 key购买 nike

我正在研究我的正则表达式技能,我发现我的一个字符串在开头有重复的单词。我想删除重复项,只需要一个字 -

server_server_dev1_check_1233.zzz
server_server_qa1_run_1233.xyz
server_server_dev2_1233.qqa
server_dev1_1233.zzz
data_data_dev9_check_660.log

我使用了下面的正则表达式,但我在输出中同时得到了 server_server,

((.*?))_(?!\D)

如果有两个或更多,并且只有一个 server_,我如何才能只将输出输出到一个 server_,然后按原样处理?输出不必包含 digits 以及 . 之后的部分,即 .zzz、.xyz

预期输出 -

server_dev1_check
server_qa1_run
server_dev2
server_dev1
data_dev9_check

最佳答案

您可以反向引用搜索表达式中的单词:

>>> s = "server_server_dev1_check_1233.zzz"
>>> re.sub(r"(.*_)\1",r"\1",s)
'server_dev1_check_1233.zzz'

并使用“多次”后缀,因此如果出现次数超过 2 次,它仍然有效:

'server_server_server_dev1_check_1233.zzz'
>>> re.sub(r"(.*_)\1{1,}",r"\1",s)
'server_dev1_check_1233.zzz'

摆脱后缀并不是最难的部分,只需捕获其余部分并丢弃结尾即可:

>>> re.sub(r"(.*_)\1{1,}(.*)(_\d+\..*)",r"\1\2",s)
'server_dev1_check'

关于python - 使用正则表达式删除字符串中的重复单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52443858/

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