字符串中获取 IP地址

wenbinglove 2011-12-14 11:16:50
$ipStr = "@#!E#@#$@adfassfsa:192.168.5.212";

$patten = '/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/';

preg_match_all ( $patten, $ipStr, $out );

var_dump ( $out );

我想取出$ipStr字符串中的ip地址 192.168.5.212

思路如下是 写个一个IP地址的正则表达式 然后匹配字符串字符串

可我 现在 正则表达式 写了很多种 var_dump 出来都是 空的

下面是我在网上找的 IP正则表达式 试过 都没有用
$patten = '/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))$/';

$patten = '/^((1?\d?\d|(2([0-4]\d|5[0-5])))\.){3}(1?\d?\d|(2([0-4]\d|5[0-5])))$/';

$patten="/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\Z/";

$patten = "=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g";

也许会有人说 你分割字符串 不就好了吗 不行 因为 字符串不能确定格式

请大家帮帮忙 谢谢
...全文
491 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenbinglove 2011-12-14
  • 打赏
  • 举报
回复
弄个agent 模块 需要者一小部分 功能
[Quote=引用 5 楼 xuzuning 的回复:]
又不是验证,何必搞那么复杂

PHP code

$ipStr = "@#!E#@#$@adfassfsa:192.168.5.212";
$patten = '/([\d.]+)/';
preg_match_all ( $patten, $ipStr, $out );
var_dump ( $out );


array(2) {
[0]=>
array(1) {……
[/Quote]
wenbinglove 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 phpnewnew 的回复:]
$patten = '/(\d+)\.(\d+)\.(\d+)\.(\d+)$/';

Array ( [0] => 192.168.5.212 [1] => 192 [2] => 168 [3] => 5 [4] => 212 )
[/Quote]

谢谢
xuzuning 2011-12-14
  • 打赏
  • 举报
回复
又不是验证,何必搞那么复杂
$ipStr = "@#!E#@#$@adfassfsa:192.168.5.212";
$patten = '/([\d.]+)/';
preg_match_all ( $patten, $ipStr, $out );
var_dump ( $out );

array(2) {
[0]=>
array(1) {
[0]=>
string(13) "192.168.5.212"
}
[1]=>
array(1) {
[0]=>
string(13) "192.168.5.212"
}
}
shuyunhai 2011-12-14
  • 打赏
  • 举报
回复
楼主试下这个

[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}
afeiqiang 2011-12-14
  • 打赏
  • 举报
回复
为什么要用限定符"^","$"呢?直接用'/(\d+)\.(\d+)\.(\d+)\.(\d+)/'就可以了
黄袍披身 2011-12-14
  • 打赏
  • 举报
回复
$patten = '/(\d+)\.(\d+)\.(\d+)\.(\d+)$/';

Array ( [0] => 192.168.5.212 [1] => 192 [2] => 168 [3] => 5 [4] => 212 )
黄袍披身 2011-12-14
  • 打赏
  • 举报
回复
$patten = '/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/';

这样的正则条件都错了 当然你就无法匹配到了。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧