Я пытаюсь очистить некоторые данные, у которых есть N цифр в начале строки, а некоторые – в остальной части. Мне нужно извлечь только первые N цифр.
Вот пример строки
1410{{data}} est un program56me de lв556Ђ™ 122 datadatadata5654df sdfs989 123datadatadata5654df sdfs989
Мне нужно как результат получить
1410,122,123
Как насчет:
$str = preg_replace('/^(\d+).*$/', "$1", $str);
Попробуйте использовать это регулярное выражение:
^([0-9]+)?
используя команду preg_match
.
Он будет указывать последовательные цифровые последовательности в начале строки. 🙂
Пример :
function getInitial($line) { $regex = "^([0-9]+)?"; preg_match($regex, $line, $match); return $match[1]; }
Это должно сделать трюк: ^(\d+)
. Он будет инструктировать движок регулярного выражения начинать с начала строки, сопоставлять одну или несколько цифр и помещать их в группу. Любые другие символы будут проигнорированы.
Насколько я понимаю, вам нужно как минимум N цифр в начале каждой строки:
preg_match_all("/^(\d{3,})/m", $text, $matches, PREG_SET_ORDER); print_r($matches);
одним возможным регулярным выражением может быть # # (\ d +) # ': в дополнение к php-функции preg_match('#^(\d+)#',$string,$param);
$ param [1] вернет эти числа