You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Regex匹配Python城市列表中含特定重音字符的元素?

匹配含特定重音字符的城市名称

我有一个包含多个城市的Python列表,想要仅匹配其中带有特定重音字符(á、í、ú、ó、é)的元素。目前已匹配到大部分,但仍有遗漏(例如无法匹配'El Fuerte de la Unión')。我认为当前的Regex语法效率较低,当前使用的语法为:

(\w*\s*\w*\s*\w*[áíúóéó]+.*?\s*\w*)

以下是列表的部分内容:

['Name', 'San Marcos Tecomaxusco', 'Teapa', 'Tatatila', 'Sisal', 'Simojovel de Allende', 'El Fuerte de la Unión', 'Santiago Zoochila', 'Santiago Nuyoó', 'Miahuatlán', 'Santa María Huazolotitlán', 'Santa María Chimalhuacán', 'Santa María Apazco', 'Santa Cruz Ozolotepec', 'San Simón', 'Huixcolotla', 'San Rafael Ixtapalucan', 'San Pedro Mixtepec', 'San Pedro Huilotepec', 'San Miguel Balderas', 'San Mateo Almomoloha', 'San Martín Chalchicuautla', 'Teolocholco', 'San Luis Ayucán', 'San Juan Zitlaltepec', 'San José de las Flores', 'San Jerónimo Xayacatlán', 'San Hipólito', 'San Francisco Oxtotilpan', 'San Cristóbal de las Casas']

解决方案

原正则的问题在于写法冗余,且限制了重音字符的位置范围,导致部分含重音的字符串无法匹配。要高效匹配所有含指定重音的城市,只需要检查字符串中是否存在目标重音字符即可,不需要纠结重音的位置和前后单词数量。

推荐使用以下简洁高效的正则:

^.*[áíúéó].*$

正则解释

  • ^:匹配字符串起始位置
  • .*:匹配任意数量的任意字符(包含空格、字母等)
  • [áíúéó]:匹配指定的重音字符(去除了原正则中重复的ó)
  • .*:匹配重音字符之后的任意内容
  • $:匹配字符串结束位置

Python代码示例

import re

cities = ['Name', 'San Marcos Tecomaxusco', 'Teapa', 'Tatatila', 'Sisal', 'Simojovel de Allende', 'El Fuerte de la Unión', 'Santiago Zoochila', 'Santiago Nuyoó', 'Miahuatlán', 'Santa María Huazolotitlán', 'Santa María Chimalhuacán', 'Santa María Apazco', 'Santa Cruz Ozolotepec', 'San Simón', 'Huixcolotla', 'San Rafael Ixtapalucan', 'San Pedro Mixtepec', 'San Pedro Huilotepec', 'San Miguel Balderas', 'San Mateo Almomoloha', 'San Martín Chalchicuautla', 'Teolocholco', 'San Luis Ayucán', 'San Juan Zitlaltepec', 'San José de las Flores', 'San Jerónimo Xayacatlán', 'San Hipólito', 'San Francisco Oxtotilpan', 'San Cristóbal de las Casas']

# 编译正则模式
pattern = re.compile(r'^.*[áíúéó].*$')

# 筛选符合条件的城市
matched_cities = [city for city in cities if pattern.match(city)]

print(matched_cities)

这段代码会准确筛选出所有包含指定重音字符的城市,包括之前遗漏的'El Fuerte de la Unión',且执行效率远高于原正则。


内容的提问来源于stack exchange,提问作者Pixeljim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:41:04