строка разбивается на строки php по шаблону - PullRequest
2 голосов
/ 17 мая 2011

У меня есть такая строка:

1. 192.168.122.1 0.89 Bps 2. 192.168.122.10 0.25 Bps

Я хочу разбить строку на две строки, например:

192.168.122.1 0.89 Bps
192.168.122.10 0.25 Bps

Ответы [ 4 ]

4 голосов
/ 17 мая 2011

Вы можете использовать регулярное выражение. \d является ярлыком для класса символов [0-9], который часто используется в следующем выражении.

preg_match_all('/\d+\. \d+\.\d+\.\d+\.\d+ [\d.]+ Bps/', $str, $matches);

CodePad .

В вашем примере $matches будет содержать ...

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(25) "1. 192.168.122.1 0.89 Bps"
    [1]=>
    string(26) "2. 192.168.122.10 0.25 Bps"
  }
}
2 голосов
/ 17 мая 2011

preg_split пример:

$str = "1. 192.168.122.1 0.89 Bps 2. 192.168.122.10 0.25 Bps";

$split = preg_split("~\s?\d\.\s~", $str, -1, PREG_SPLIT_NO_EMPTY);

/*
Array
(
    [0] => 192.168.122.1 0.89 Bps
    [1] => 192.168.122.10 0.25 Bps
)
*/
1 голос
/ 17 мая 2011

Всегда ли они гарантированно находятся в таком порядке?Что-нибудь статичное, что меняется и т. Д.? 1001 *

Здесь не достаточно критериев, но вы, вероятно, будете смотреть на взрывающиеся пространства и идти оттуда ...

<?php
$str = "1. 192.168.122.1 0.89 Bps 2. 192.168.122.10 0.25 Bps";
$arr = explode(" ", $str);
$your_result = "{$str[1]} {$str[3]} {$str[4]}\n{$str[6]} {$str[7]} {$str[8]}";
?>
1 голос
/ 17 мая 2011

Попробуйте использовать встроенную функцию preg_split (): http://php.net/manual/en/function.preg-split.php

...