首页 > 文章列表 > 如何使用正则表达式匹配恰好三个连续数字?

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

261 2024-12-07

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

正则匹配恰好三个连续数字

如何使用正则表达式匹配恰好三个连续数字,既不能少于三个也不能多于三个?

原先的正则表达式 "[^0-9]*[0-9]{3}[^0-9]*" 虽然可以匹配三个连续数字,但它忽略了开头或结尾可能存在的非数字字符。

修改后的正则表达式如下:

(?<!d)(d{3})(?!d)
  • (?<!d):负向前瞻断言,确保匹配的数字序列之前没有数字字符。
  • (d{3}):捕获组,匹配恰好三个连续数字。
  • (?!d):负向后瞻断言,确保匹配的数字序列之后没有数字字符。

python 示例

import re

data = [
    '123',
    '123u',
    'u123',
    'x123y',
    '1234',
    'x1234y',
    '12',
    '123y456',
]

for s in data:
    print(re.findall(r'(?&lt;!d)(d{3})(?!d)', s))

输出:

['123']
['123']
['123']
['123']
[]
[]
[]
['123', '456']
来源:1730000298