string - 如何在php中截取字串“xxx_xxxx_IP地址_xxxxxxxx_xxxxxx”中的IP地址呢?

來源:互聯網
上載者:User
關鍵字 php string
在PHP中,一個字串比如“xxx_xxxx_10.136.132.61_xxxxxxxx_xxxxxx”,怎麼得到其中的“10.136.132.61”這一部分呢。

因為IP地址長短不一,所以我一開始想的substr是不適用的。如果尋找“_”的位置的話,因為IP前後都有兩個“_”,所以也不行。

除了IP地址長度不確定,其他的長度是確定的,格式也是確定的,都是“xxx_xxxx_IP地址_xxxxxxxx_xxxxxx”這個格式,x表示一個字元

謝謝大家協助!

回複內容:

在PHP中,一個字串比如“xxx_xxxx_10.136.132.61_xxxxxxxx_xxxxxx”,怎麼得到其中的“10.136.132.61”這一部分呢。

因為IP地址長短不一,所以我一開始想的substr是不適用的。如果尋找“_”的位置的話,因為IP前後都有兩個“_”,所以也不行。

除了IP地址長度不確定,其他的長度是確定的,格式也是確定的,都是“xxx_xxxx_IP地址_xxxxxxxx_xxxxxx”這個格式,x表示一個字元

謝謝大家協助!

如果你能確定其他字串沒有類IP的格式的話才可以匹配

$str = 'xxx_xxxx_10.136.132.61_xxxxxxxx_xxxxxx';$patten = '(/25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}/';preg_match($patten,$str,$result);var_dump($result);$ip = $result[0];

不懂php,不過這個問題可以回答下,一,正則匹配。二,字串切割,切個頭切個尾。

用正則吧

$data = 'xxx_xxxx_10.136.132.61_xxxxxxxx_xxxxxx';$preg = '/[\d\.]+/i';preg_match($preg, $data, $matches);var_dump($matches);

explode函數搞定

$str = 'xxx_xxxx_10.136.132.61_xxxxxxxx_xxxxxx';$arr = explode('_', $str);print_r($arr);

我自問自答一下,可以用substr($str,9,-16)

explode('_', $str)[2]

用正則可以非常靈活,而用explode,或者substr,都是投機取巧。3L是正解

支援explode,簡單省事,反正格式已固定

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.