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

如何将含startswith的代码改用正则实现?及字典值正则提取需求

用正则替代startswith()提取字典键的实现方案

嘿,刚好可以帮你把这段基于startswith()的代码转换成正则实现,效果完全等价,下面是具体步骤和代码:

你原来的列表推导式思路很清晰,我们只需要把str(v).startswith('12')替换成正则匹配逻辑就行:

  1. 先导入Python的正则模块re
  2. 使用re.match()配合正则表达式^12来匹配以12开头的字符串(^在正则里表示字符串的起始位置)

具体代码如下:

import re

test = {'name': 'a','num': '1234','num2':'5678', 'num3':'0142'}
# 正则版本的列表推导式
result = [k for k, v in test.items() if re.match(r'^12', str(v))]
print(result)  # 输出: ['num']

小补充说明:

  • re.match()会从字符串的开头开始匹配,这和startswith()的行为完全一致,刚好满足你的需求
  • 正则表达式^12的含义就是:匹配以12作为开头的任意字符串,后面的内容不做限制
  • 如果之后需要扩展匹配规则(比如忽略大小写、匹配特定长度的后续字符),正则的灵活性会比startswith()更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:02:46