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

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

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

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

问题详情:

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

    • "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'(?<p>输出:</p>
['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]

以上就是如何使用正则表达式准确匹配三个连续数字?的详细内容,更多请关注www.sxiaw.com其它相关文章!