Регулярное выражение PHP для поиска любого числа в начале строки

#php #regex

#php #регулярное выражение

Вопрос:

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

Пример:

1234- Южный бульвар. Вашингтон, округ Колумбия, APT #306, ZIP45234

В приведенном выше примере было бы возвращено только 1234.

Кажется, что это должно быть невероятно просто, но мне еще предстоит добиться успеха. Буду признателен за любую помощь.

Ответ №1:

Попробуйте это:

 $str = "1234- South Blvd. Washington D.C., APT #306, ZIP4523";
preg_match("~^(d )~", $str, $m);
var_dump($m[1]);
  

ВЫВОД:

 string(4) "1234"
  

Ответ №2:

Я знаю, что вы просили regex , но, возможно, эффективнее сделать это без (я еще не проводил тесты). Вот функция, которая может оказаться полезной:

 function removeStartInt(amp;$str)
{
    $num = '';
    $strLen = strlen($str);
    for ($i = 0; $i < $strLen; $i  )
    {
        if (ctype_digit($str[$i]))
            $num .= $str[$i];
        else
            break;
    }
    if ($num === '')
        return null;
    $str = substr($str, strlen($num));
    return intval($num);
}
  

Это также удаляет число из строки. Если вы этого не хотите, просто измените (amp;$str) на ($str) и удалите строку: $str = substr($str, strlen($num)); .