Я пытаюсь найти числа в строке, появляющейся после определенных слов, и размещать ведущие нули перед номерами.Как я могу найти строку на основе определенных критериев и заменить определенное значение с помощью regex
например. Apt 4, John Ave должен быть Apt 0004, John Ave Block 52, Lane Drive должен быть Блок 0052 Lane Drive
Примечание: Я только хочу добавить ведущих 0, чтобы сделать его 4-значный номер
Мой код частично работает, но он заменяет все числа, которые он находит с ведущими нулями. Я думаю, что preg_replace сможет добиться этого с лучшими результатами.
$s = '23 St John Apt 92 rer 4, Wellington Country Block 5 No value test 54545 tt 232';
preg_match_all('/Apartment\s[0-9]+|Apt\s[0-9]+|Block\s[0-9]+|Department\s[0-9]+|Lot\s[0-9]+|Number\s[0-9]+|Villa\s[0-9]+/i', $s, $matches);
var_dump ($matches);
foreach($matches[0] as $word)
{
preg_match_all('!\d+!', $word, $matches2);
foreach($matches2[0] as $value)
{
$value = trim($value);
if(strlen($value) == 1)
{
$s= str_replace($value, "000".$value, $s);
}
else if(strlen($value) == 2)
{
$s= str_replace($value, "00".$value, $s);
}
else if(strlen($value) == 3)
{
$s= str_replace($value, "0".$value, $s);
}
else
{
//nothing
}
}
}
echo $s;
Вы хотите добавить '0' только для того, чтобы сделать их ** четырехзначным числом? –
Да, я хочу добавить только 0, чтобы сделать его 4-значным числом. – user2635901