社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Mustafa Aydın

Mustafa Aydın 最近创建的主题
Mustafa Aydın 最近回复了
4 年前
回复了 Mustafa Aydın 创建的主题 » Python中使用缩写的正则表达式

这里有一个解决问题的方法 regex 看起来是一个大写字母,后面是两个小写字母。然后需要一个空格和两位数字:

import calendar
import re

# first one is empty string, we slice that
months = tuple(calendar.month_abbr)[1:]  # ("Jan", "Feb", ...)

pattern = re.compile(r"[A-Z][a-z]{2} \d{2}")

result = [match.start()
          for match in re.finditer(pattern, seq)
          if match.group().startswith(months)]

这给了 [111] 对于问题中的字符串。 re.finditer 查找所有可能的匹配项并返回一个迭代器,迭代器在迭代时给出 re.Match 对象谁的 start 方法查询以获取匹配项的位置。自从 [A-Z][a-z]{2} 可以在几个月之外进行比赛,我们会检查比赛是否以任何一个月开始。 result 如果找不到匹配项,则将为空列表。