RegEx для ввода цифр в строку (PHP) - PullRequest
0 голосов
/ 02 июня 2019

Я набираю номера работ и сопоставляю их с данными в базе данных mysql, а затем извлекаю совпадающие данные.

Если мой номер работы 123456, то он отлично совпадает, и я получаю результаты.Некоторые 123-456 некоторые 12-text, а некоторые 12-text-345

$variable = $variable

Я пытался сопоставить переменную, но это неэффективно.Я попытался изменить SQL в PHPMyAdmin, и он там даже не работает гладко.Я погуглил и думаю, что должен использовать RegExp.Я старался.Я могу добавить косую черту и заставить ее работать с отдельными элементами, однако я не знаю, где будет находиться дефис среди массива.Это может быть третий или четвертый персонаж.Я пробовал pregmatch, но я не думаю, что знаю, что я делаю с этим.Я ищу несколько строк кода для анализа переменной PHP, а также для обнаружения и экранирования любых метасимволов, если они есть.Ссылка на учебник тоже подойдет, я ценю любую помощь

1 Ответ

0 голосов
/ 02 июня 2019

Здесь, если мы хотим получить только цифры, по пути можно было бы собрать наши цифры в группе захвата и затем собрать все остальное, а затем заменить его просто $1 выражением, похожим на:

(\d+)|\D+

Тест

$re = '/(\d+)|\D+/m';
$str = 'text-12-text-345';
$subst = '$1';

$result = preg_replace($re, $subst, $str);

echo $result;

Выход

12345

DEMO

...