happyguns 2020-03-15 21:48 采纳率: 0%
浏览 786

python正则表达式 2个及以上字符要放在一起重复 如何表示?

写一个正则表达式,匹配每 3 位就有一个逗号的数字?
匹配以下数字: '42' '1,234' '6,368,745'
但不会匹配: '12,34,567' (逗号之间只有两位数字) '1234' (缺少逗号)

s = '42 1,234 6,368,745 12,34,567 1234'
numRegex = re.compile(r'\d{1,3},\d{3}')  #',\d{3}'为需要一起重复的4个字符.
print(numRegex.findall(s))
  • 写回答

2条回答

  • 时光放逐 2020-03-15 23:34
    关注

    r'\b\d{1,3}(?:,\d{3})*(?!,)\b'可以正确匹配42 1,234 6,368,745但会误匹配到34,567
    个人认为可以如下进行
    list1 = s.split()
    list2 = []
    numRegex = re.compile(r'^\d{1,3}(?:,\d{3})*(?!,)$')
    for i in list1:
    list2.extend(numRegex.findall(i))
    print(list2)
    或者可以
    numRegex = re.compile(r' (\d{1,3}(?:,\d{3})*)(?!,)\b') #注意空格
    print(numRegex.findall(' ' + s))

    评论

报告相同问题?

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号