2016-11-23 26 views
1

我使用正则表达式的其他实例可以看出,但是我很困扰试图矿正确格式化一点点,我有这样的数字列表:PHP - 从某种格式的字符串搜索

1.0.0.1ACS 
1.0.0.2ADS 
1.0.1.8AAB 

但是我只想要有实际的4位数字,但数字可能会变成每行多位数字,例如122.222.222.222(最多3个)我该如何使用PHP来做到这一点?我认为我将不得不把他们全部放入数组中,然后对于每个数组,然后我对如何删除多余的字母感到困惑。

在此先感谢!

+0

,什么是预期的结果你要找的? –

+0

也许另一个数组只会输出1.0.0.1,而不是1.0.0.1ACS –

回答

2

此致代码是:根据你的榜样

<?php 
$input = <<<TEST 
1.0.0.1ACS 
1.0.0.2ADS 
1.0.1.8AAB 
TEST; 
if (!preg_match_all("#(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})+#", $input, $matches)) 
    print("NOT FOUND!"); 
else 
    var_dump($matches[0]); 
+0

欢迎使用堆栈溢出!尽管这段代码可能会解决这个问题,其中包括* how *和* why *的解释,这可以解决问题[真的有所帮助](// meta.stackexchange.com/q/114762)来提高帖子的质量。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –

+1

谢谢!完善! –

+0

保罗,如果你把脚本放在老的php上,你可能会得到错误。如果您遇到错误,请尝试从',$ matches'更改为',&$ matches' –