【发布时间】:2015-10-26 09:38:58
【问题描述】:
我写了下面的正则表达式来匹配IP地址,
x = 'IP is 200.185.24.24'
y = re.findall('([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-2][0-3])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5])',x)
我得到以下答案,
>>> y
[('200', '185', '24', '2')]
我有两个问题,
- 为什么我的桅杆八位字节在这里失败。休息很好。
- 当您看到上面的模式时,我重复了相同的操作以匹配 IP 地址的第 2、3 和第 4 个八位字节。有没有一种简单的方法来表示这种重复的模式。我猜 tcl 中的 \d 是为了重复(不确定)。我在 python 中寻找类似的东西。
感谢您的投入。
【问题讨论】:
-
The Regex Cookbook ch 7 at safaribooksonline.com/library/view/regular-expressions-cookbook/… 中有几个用于匹配 IP 地址的示例正则表达式。