в PHP получить числа из строки

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

@[123:peterwateber] привет 095032sdfsdf! @[589: zzzz]

Я хочу сделать 123 и 589 как вы это используете регулярное выражение или что-то в PHP?

Примечание: peterwateber и zzzz-всего лишь примеры. любая случайная строка должна считаться

3 ответов


Не забудьте lookahead, чтобы вы не соответствовали 095032:

$foo = '@[123:peterwateber] hello there 095032sdfsdf! @[589:zzzz]';
preg_match_all("/[0-9]+(?=:)/", $foo, $matches);
var_dump($matches[0]); // array(2) { [0]=> string(3) "123" [1]=> string(3) "589" }

следующее регулярное выражение извлекает один или несколько числовых символов в строке:

preg_match_all('#\d+#', $subject, $results);
print_r($results);

существует функция preg_match_all

первый параметр принимает регулярное выражение - в следующем примере показано " совпадение по крайней мере одной цифры, за которой следует любое количество цифр. Это будет соответствовать номерам.

второй параметр-это сама строка, тема, из которой вы хотите извлечь

третий-это массив, в который будут помещены все сопоставленные элементы. Таким образом, первый элемент будет 123, второй будет 589 и так далее

    preg_match_all("/[0-9]+/", $string, $matches);