【发布时间】:2020-12-07 07:39:03
【问题描述】:
我正在尝试使用正则表达式来查看给定的字符串是否是 IPv4 地址。我想根据字符串返回一个布尔值True/False。这是我的代码:
import re
def isIPv4Address(inputString):
pattern = re.compile(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s')
return pattern.match(inputString)
值为空。在这一点上,我可以看出该函数没有返回布尔值。然而,我看到的关于正则表达式和 IP 地址的所有问题都是关于编写模式而不是完整的实现。我知道实际的实现不应该比这更长,因为它只是接受输入并将其与正则表达式进行比较。
【问题讨论】:
-
提供一些失败的示例数据,并请解释
\s在您的模式结束时正在做什么。如果是为了确保 IP 地址后面有空格,那为什么不在前面呢?您将如何处理完全有效的"172.16.4.4",并带有no 个空格? -
@paxdiablo Tbh,我从另一个 SO 帖子中得到了表达..