gpt4 book ai didi

如果多个匹配项,Python 正则表达式首选项

转载 作者:行者123 更新时间:2023-12-01 02:25:47 25 4
gpt4 key购买 nike

我正在字符串中搜索城市名称:

mystring = 'SDM\Austin'
city_search = r'(SD|Austin)'
mo_city = re.search(city_search,mystring,re.IGNORECASE)
city = mo_city.group(1)
print(city)

这会将城市返回为“SD”。

有没有办法让“奥斯汀”成为首选?

将顺序切换为 (Austin|SD) 不起作用。

答案与 How can I find all matches to a regular expression in Python? 相同,但用例略有不同,因为首选匹配。

最佳答案

您正在使用re.search,请改用re.findall返回一个列表,其中包含所有匹配项

因此,如果您将代码修改为:

mystring = 'SDM\Austin'
city_search = r'(SD|Austin)'
mo_city = re.findall(city_search,mystring,re.IGNORECASE)
city = mo_city[1]
print(city)

它将工作查找,输出:

Austin
<小时/>

因此,mo_city 是一个列表:['SD', 'Austin'] 并且因为我们想要分配 第二个元素(Austin)到city,我们使用mo_city[获取索引1 1].

关于如果多个匹配项,Python 正则表达式首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47420926/

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