我正在努力解析ip,它位于我知道的特定单词的上方2行,是否可以有人知道如何做到这一点? 这是我的代码的一部分...
if (($handle = fopen('FW1-20160802_1530.conf', "r")) !== FALSE){
while (($data = fgetcsv($handle, 1000,";")) !== FALSE)
..
else if (preg_match('/(.*site-5552)/',$data[0],$match))
{
list(,$line)=$match;
$REV_ARRAY[$site_name]['line']=$line;
}
这给了我以下输出的第三行:
edit 2
set dst 10.23.255.252 255.255.255.252
set device "abc"
set comment "Static Route site-5552"
但正如我上面提到的,我需要抓住ip:“10.23.255.252”,它存在两条线。
文本文件太大,所以我只粘贴了一部分。 根据站点编号(在本例中为5552)我需要找到相关的ip(10.93.255.252)
edit "Site-5552"
set asdaa
set asdsdaa
set aadsda
set aasdda
set aaaa
set adsaa
set aadsa
set vvxv
set dsds
set czx
ssasd
edit 2
set dst 10.93.255.252 255.255.255.252
set device "sdasdsad"
set comment "Static Route for LTE site-5552"
答案 0 :(得分:1)
K.D您需要s
修饰符来告诉正则表达式引擎在与.
更改您的正则表达式模式:
/(.*site-5552)/
要:
/set dst ([\d\.]+).*site-5552/s