в 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);