Найти первый набор последовательных чисел php regex

Я довольно плохо знаком с php и регулярными выражениями, и мне трудно найти свое решение. Я не уверен, если это, потому что я не знаю условия для Google или что, но вот мой вопрос:

Я пытаюсь использовать PHP preg_match, чтобы найти первый набор последовательных чисел в строке. Под последовательными числами я подразумеваю ЛЮБУЮ строку, где это непрерывные числа.

ех.

‘abc123abc’ соответствует: 123
‘ghdfk 1 23abc’ матчей: 1
‘2475xyz’ матчей: 2475
‘abc 456 789’ совпадений: 456

Я искал в регулярных выражениях и в Google термины, похожие на тему моего вопроса, но все они, похоже, возвращают результаты поиска людей, которые ищут повторяющиеся числа определенной длины.

Я пытаюсь разобрать адресную строку в меру своих возможностей, хотя она может быть ужасно введена.

То, что я пробовал до сих пор, что не работает, в моем коде:

<?php
#$addr = '12-3 3rd street'; #1st Test
$addr = 'RR 3 Box 8411'; #2nd Test
#$addr = '480jacksonrd'; #3rd Test
#$addr = 'N2626prociousmayselrd'; #4th Test

#list($our['StreetNum'], $our['StreetName']) = explode(" ", $our['Address'], 2);

#preg_match('/.+(?=[^0-9])/s',$addr,$Matches);
#preg_match('/[0-9]*/',$addr,$Matches);
preg_match('/(?<=\[^0-9]).+?(?=[^0-9])/s',$addr,$Matches);

$our['StreetNum'] = $Matches[0];

$our['StreetNum'] = preg_replace("/[^0-9]/", "", $our['StreetNum']);

echo ('First Match?: ' . $Matches[0] . '<br>'); #For Testing
echo ('Second Match?: ' . $Matches[1] . '<br>'); #For Testing
echo ('StrLen of StreetNum: ' . strlen($our['StreetNum']) . '<br>');
echo ('StrPos of StreetNum: ' . strpos($addr,$our['StreetNum']) . '<br>');

$our['StreetName'] = substr($addr, strlen($our['StreetNum'])+strpos($addr,$our['StreetNum']));

echo ('Street Original: ' . $addr . '<br>');
echo ('Street Number: ' . $our['StreetNum'] . '<br>');
echo ('Street Name: ' . $our['StreetName'] . '<br>');
?>

Любая помощь или направление будет принята с благодарностью.

2

Решение

Ты слишком много думаешь. Попробуй это:

if preg_match('/\d+/', $my_string, $matches)
return $matches[0];

Вам просто нужно найти цифры и вернуть совпадение.

2

Другие решения

/[0-9]+/ как preg_match должно быть достаточно.
Вы ищете любой 1 или более номеров.

preg_match('/[0-9]+/', $addr, $Matches)

Или же

preg_match('/\d+/', $addr, $Matches)
3

По вопросам рекламы [email protected]