#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));
.