PHP разбить строку на целое число, строку и специальный символ - PullRequest
0 голосов
/ 02 февраля 2020

Мне нужно разбить этот формат строк CF12:10 на массив, как показано ниже,

[0] => CF, [1] => 12, [2] => 10

Числа и строки предоставленной строки могут быть любой длины. Я нашел функцию php preg_match, но не знаю, как сделать регулярное выражение для моего случая. Любое решение будет высоко ценится.

Ответы [ 2 ]

1 голос
/ 02 февраля 2020

Вы можете использовать это регулярное выражение для сопоставления отдельных частей:

^(\D+)(\d+):(.*)$

Соответствует началу строки, некоторому количеству не-ди git символов (\D+), за которым следует некоторое количество цифры (\d+), двоеточие и некоторое количество символов после : и до конца строки. В PHP вы можете использовать preg_match, чтобы найти все подходящие группы:

$input = 'CF12:10';
preg_match('/^(\D+)(\d+):(.*)$/', $input, $matches);
array_shift($matches);
print_r($matches);

Вывод:

Array
(
    [0] => CF
    [1] => 12
    [2] => 10
)

Демонстрация на 3v4l.org

0 голосов
/ 02 февраля 2020

Попробуйте следующий код, если он вам поможет

 $str = 'C12:10';
 $arr = preg_match('~^(.*?)(\d+):(.*)~m', $str, $matches);
 array_shift($matches);                                                   
 echo '<pre>';print_r($matches);
...