【问题标题】:PHP - Check if a string contains an IP addressPHP - 检查字符串是否包含 IP 地址
【发布时间】:2014-07-25 08:58:55
【问题描述】:

我有一个这样的字符串:

“(01:42 PM)76.124.231.190 威廉:喂?”

我需要一个正则表达式来删除这样的 IP 地址:

preg_replace($regex, "", "(01:42 PM)76.124.231.190 William: Hello?")
// --> "(01:42 PM) William: Hello?"

我见过这个:Regex to match an IP address,但它会检查字符串 是否是 IP,而不是它是否包含它。

另外,它不一定是完美的,999.99.999.999 是可以的。

【问题讨论】:

  • 你之前和之后都尝试过通配符吗?喜欢.*?(original_regex_here).*?

标签: php regex dns


【解决方案1】:

似乎您正试图从字符串中提取特定 IP。你不需要正则表达式。

这可以通过str_replace轻松完成:

$myStringWithIP = '(01:42 PM)76.124.231.190 William: Hello?';
str_replace('76.124.231.190', '', $myStringWithIP);

#$myStringWithIP now equals '(01:42 PM) William: Hello?'

我希望这会有所帮助!

【讨论】:

  • 是的,但是 str_replace 不会删除字符串中看起来像 IP 的任何内容。只有您在代码中指定的那个。
  • 这就是我不想要的。
  • 你非常好战。在您的问题中,您说:I need a regex to remove the IP address like this: 这不是真的。可以使用str_replace 删除 IP 地址。
  • 也许你应该看看标题。
【解决方案2】:

最简单的,这个正则表达式应该可以工作。

preg_replace('/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/', "", "(01:42 PM)76.124.231.190 William: Hello?")

【讨论】:

【解决方案3】:

如果您每次在 IP 之前都有相同的字符串长度,您可以在 php 中使用一个子字符串并选择 IP 地址。只需使用 substr

http://www.php.net/manual/en/function.substr.php

【讨论】:

    猜你喜欢
    • 2018-02-16
    • 2013-05-01
    • 2016-04-22
    • 2012-05-24
    • 2012-06-23
    • 2013-08-22
    • 1970-01-01
    • 2016-11-24
    • 2012-02-21
    相关资源
    最近更新 更多