📅  最后修改于: 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次的数字,可以使用\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次的数字,可以使用\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次的数字,可以使用\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”没有被匹配到。
正则表达式是一个强大的文本处理工具,可以用来快速地匹配和过滤出我们需要的文本。在匹配重复相同的数字时,我们可以使用花括号指定一个重复的次数,来快速地匹配到我们需要的数字。