|
|
|
| Столкнулся со следующнй проблемой, имеется список адресов следующего вида:
УЛ. ПОБЕДЫ Дом 32А
УЛ. СОВЕТСКАЯ Дом 26/6
ПЕР. НАДЕЖДЫ КРУПСКОЙ Дом 2
УЛ. КАРЛА МАРКСА Дом 11/29
УЛ. 1905 ГОДА Дом 37
УЛ. 40 ЛЕТ ОКТЯБРЯ Дом 58/2
и т.д., необходимо вытянуть ( ПЕР. НАДЕЖДЫ КРУПСКОЙ и 2), т.е. две переменные без "Дом".
Пишу следующее, но не срабатывает:
$pattern =
"|".".".
"*([^>]*) Дом".".".
"*([^>]*)".".".
"*|isU";
$text = preg_match_all($pattern, $text, $out);
for($i = 0; $i < count($out[0]); $i++)
{
echo '<hr whith="100%" style="border: 1px blue dashed;"></hr>';
echo "1: Улица №: <strong>".$out[1][$i]."</strong><br>";
echo "2: Дом: <strong>".$out[2][$i]."</strong><br>";
} | |
|
|
|
|
|
|
|
для: feniksua
(01.09.2009 в 20:57)
| | Спасибо, сам разобрался:
$pattern = "/([^>]*) Дом ([^>]*)/i"; | |
|
|
|
|
|
|
|
для: feniksua
(01.09.2009 в 20:57)
| | долго не мог понять почему не работают никакие выражения :)
оказалось скопировал как есть $text = preg_match_all($pattern, $text, $out);
<pre><?
$text=<<<TXT
УЛ. ПОБЕДЫ Дом 32А
УЛ. СОВЕТСКАЯ Дом 26/6
ПЕР. НАДЕЖДЫ КРУПСКОЙ Дом 2
УЛ. КАРЛА МАРКСА Дом 11/29
УЛ. 1905 ГОДА Дом 37
УЛ. 40 ЛЕТ ОКТЯБРЯ Дом 58/2
и т.д., необходимо вытянуть ( ПЕР. НАДЕЖДЫ КРУПСКОЙ и 2),
т.е. две переменные без "Дом".
Пишу следующее, но не срабатывает:
TXT
;
$pattern = "|.*([^>]*) Дом.*([^>]*).*|isU"; # Ваше выражение
# , [^>]* включит всё включая переносы строк , как и .* поскольку /s
preg_match_all($pattern, $text, $out,2);
print_r($out);
?>
--------------------------
<?
$p2 = '#^([УЛПЕР]+\..*?) Дом *(\S+)#m'; # multiline вариант
# , с проверкой [УЛПЕР]+\. , которую можно выкинуть
preg_match_all($p2, $text, $out,2);
print_r($out);
|
| |
|
|
|