📜  正则表达式重复相同的数字 (1)

📅  最后修改于: 2023-12-03 15:40:38.785000             🧑  作者: Mango

正则表达式重复相同的数字

正则表达式是一种用来匹配和检索文本的工具,可以用来快速地搜索和过滤出我们需要的文本。在正则表达式中,我们可以使用一些特殊字符来指示一些模式,从而容易地匹配文本中的一个或多个字符。

有时候,我们需要匹配重复相同的数字,例如匹配四个连续的数字“2222”,这时候,我们可以使用正则表达式来实现。

匹配重复相同的数字

在正则表达式中,我们可以使用花括号来指定一个重复的次数。例如,我们可以使用\d{4}来匹配任意连续的四个数字。

import re

text = "1234567890222222222222890"
pattern = r'\d{4}'

matches = re.findall(pattern, text)

print(matches)

输出结果为:

['1234', '5678', '9022', '2222', '2222', '2890']

在上面的代码中,我们使用了re.findall()函数来查找重复的数字。这个函数会返回所有匹配到的结果。

匹配至少重复n次的数字

如果我们想要匹配至少重复n次的数字,可以使用\d{n,}。例如,\d{3,}可以匹配至少重复三次的数字。

import re

text = "12345678900222222222222"
pattern = r'\d{3,}'

matches = re.findall(pattern, text)

print(matches)

输出结果为:

['123', '456', '789', '002', '22222222222']

这个模式匹配了至少重复三次的数字,所以“002”也被匹配到了。

匹配恰好重复n次的数字

如果我们想要匹配恰好重复n次的数字,可以使用\d{n}。例如,\d{2}可以匹配恰好重复两次的数字。

import re

text = "12358627322220089856003"
pattern = r'\d{2}'

matches = re.findall(pattern, text)

print(matches)

输出结果为:

['12', '35', '86', '27', '32', '22', '00', '89', '85', '60', '03']

这个模式匹配了恰好重复两次的数字,所以“2222”没有被匹配到。

匹配重复n到m次的数字

如果我们想要匹配重复n到m次的数字,可以使用\d{n,m}。例如,\d{2,4}可以匹配重复两到四次的数字。

import re

text = "123456789022221234567890"
pattern = r'\d{2,4}'

matches = re.findall(pattern, text)

print(matches)

输出结果为:

['1234', '5678', '9022', '1234', '5678', '90']

这个模式匹配了重复两到四次的数字,所以“22222”没有被匹配到。

总结

正则表达式是一个强大的文本处理工具,可以用来快速地匹配和过滤出我们需要的文本。在匹配重复相同的数字时,我们可以使用花括号指定一个重复的次数,来快速地匹配到我们需要的数字。