【问题标题】:Parsing number from a group of strings Python从一组字符串Python中解析数字
【发布时间】:2017-02-25 02:05:45
【问题描述】:

如果用户输入带有 IP 地址的字符串。 我只想提取 IP 例如:

Hello I am localhost 127.0.0.1

我只想从整个字符串中获取 ip "127.0.0.1",我该怎么做? 谢谢。

【问题讨论】:

标签: python


【解决方案1】:

使用re

import re
result = re.findall("\d+\.\d+\.\d+\.\d+", "Hello I am localhost 127.0.0.1")

输出:

['127.0.0.1']

【讨论】:

  • 我们如何为端口做同样的事情?
  • 端口是一个固定的 4 位数字,所以 "\d{4}" 就可以了。并且,如果它解决了您的问题,请将答案标记为已接受。 @AnandVyas
  • 谢谢兄弟 :D 检查代码并会回复。
  • 请注意,这将捕获许多无效的“IP 地址”1.2.3.4444999.999.999.999 等。
  • 我知道,但是您在哪里看到 1.2.3.4444999.999.999.999 ?给我一个例子,我将编辑我的答案。 @TemporalWolf
【解决方案2】:

这是一个匹配 IPv4 地址的正则表达式:

(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])

你可以这样使用它

import re
regex = r"(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"
print(re.search(regex, "string with an ip like 127.0.0.1 in it").group())

【讨论】:

    猜你喜欢
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多