python - 正则表达式匹配任何数字,除了包含重复零的数字
问题描述
我想匹配我的数据中的大数字,但有时数据包含重复的零以表示强调,而不是电话号码。如何识别长度至少为 9 位且不包含任何重复零的数字(例如,至少 5 个)?例如:
比赛:给我打电话19083910893
不匹配:这个 x1000000000
我试过[0-9]+(?!0+)
了,但这不是我需要的,因为负前瞻与[0-9]+
. 不知何故,(\d)(?!0+)\d+
在测试中工作,但我真的不明白为什么。
解决方案
你可以使用
(?<!\d)(?!\d*0{5})\d{9,}
解释
(?<!\d)
负向后看,不直接向左断言数字(?!\d*0{5})
断言右边不是 5 个零\d{9,}
匹配 9 个或更多数字
推荐阅读
- javascript - 切换活动类 - jQuery
- mysql - 没有用 mysqlimport 导入
- azure - 创建管道后有没有办法编辑 azure-pipelines.yml?
- python - django.db.utils.ProgrammingError: (1064, "你的 SQL 语法有错误;"
- amp-html - 如何禁用 amp-img 默认灯箱功能?
- python - argparse.print_help() ArgumentParser 消息字符串
- javascript - 如何在同一个 Vue.js 项目中使用实时数据库和 Firestore
- node.js - 在 Nodejs 中解析 POST 参数
- ruby-on-rails - 使用带有最新帖子的 Rails 应用程序
- java - 如何获得正确的消息显示?