gpt4 book ai didi

python - 使用正则表达式条件列表理解

转载 作者:行者123 更新时间:2023-11-30 23:26:44 27 4
gpt4 key购买 nike

我有一个字符串列表。如果这些字符串中的任何一个具有 4 位数的年份,我想在年份末尾截断该字符串。否则我就不用管弦了。

我尝试使用:

    for x in my_strings:   
m=re.search("\D\d\d\d\d\D",x)
if m: x=x[:m.end()]

我也尝试过:

my_strings=[x[:re.search("\D\d\d\d\d\D",x).end()] if re.search("\D\d\d\d\d\D",x) for x in my_strings]  

这些都不起作用。

你能告诉我我做错了什么吗?

最佳答案

这样的东西似乎适用于琐碎的数据:

>>> regex = re.compile(r'^(.*(?<=\D)\d{4}(?=\D))(.*)')                         
>>> strings = ['foo', 'bar', 'baz', 'foo 1999', 'foo 1999 never see this', 'bar 2010 n 2015', 'bar 20156 see this']
>>> [regex.sub(r'\1', s) for s in strings]
['foo', 'bar', 'baz', 'foo 1999', 'foo 1999', 'bar 2010', 'bar 20156 see this']

关于python - 使用正则表达式条件列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22388641/

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