如何使用正则表达式准确匹配三个连续数字?

ID:19815 / 打印

如何使用正则表达式准确匹配三个连续数字?

正则表达式匹配正好三个数字

本问答旨在探索如何使用正则表达式匹配连续三个数字,既不能少数字,也不能多数字。

问题详情:

  • 目标:匹配正好三个连续的数字。
  • 范例:

    • "123" → 123
    • "123u" → 123
    • "u123" → 123
    • "x123y" → 123
  • 排除:

    • "1234" → 空
    • "x1234y" → 空
    • "12" → 空
    • "123y456" → 123 和 456

解决方案:

import re  data = [     '123',     '123u',     'u123',     'x123y',     '1234',     'x1234y',     '12',     '123y456', ]  for s in data:     print(re.findall(r'(?<!d)(d{3})(?!d)', s))

输出:

['123'] ['123'] ['123'] ['123'] [] [] [] ['123', '456']

原理解析:

正则表达式中:

  • (?
  • (d{3}):捕获组,匹配正好三个数字。
  • (?!d):负向前查断言,确保数字之后没有数字。

其他语言实现:

['123', '123u', 'u123', 'x123y', '1234', '12'].map(s => s.match(/^d*(d{3})d*$/)?.[1])

输出:

['123', '123', '123', '123', undefined, undefined]
上一篇: 如何在 Python 中安装特定版本的 OpenCV,例如 2.4.9?
下一篇: 如何将 JavaScript UUID 生成器代码移植到 Python?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。