Регулярные выражения и кирилица

AXP

Новичок
Регулярные выражения и кирилица

Помогите плз
Мне надо из строки выделить значение металла.

Строка:
"Металл: <b>51.200"
Код который я использую:
PHP:
preg_match("#Металл:\s<b>([0-9.]*)#i",$body,$match)
Но он ничего не находит. Если вместо слова металл написать metall - все работает!

(кодировка на странице - koi-8r)

Помогите плз!
 

AXP

Новичок
хз - мне нуно чтобы везде работало а не только на моем сервере - скрипт будет как минимум еще на пяти серверах... Может можно какнить вместо слова коды символов прописать?

-~{}~ 28.02.06 20:04:

Я никогда с кирилицой не работал - так что не знаю что с ней делать...
 

440hz

php.ru
PHP:
<?

$body = "Металл: <b>51.200 и солома";

print "Body: $body\n";

if(preg_match("#металл:\s<b>([0-9.]*)#i",$body,$match)) {
	print_r($match);
} else {
	print "no match";
}

?>
Код:
Body: Металл: <b>51.200 и солома
Array
(
    [0] => Металл: <b>51.200
    [1] => 51.200
)
повтори в точности и результат сюда. сдается мне у тебя кодировка страниц и редактируемомго файла разная?
 

AXP

Новичок
Body: &#204;&#229;&#242;&#224;&#235;&#235;: <b>51.200 &#232; &#241;&#238;&#235;&#238;&#236;&#224;
Array
(
[0] => &#204;&#229;&#242;&#224;&#235;&#235;: <b>51.200
[1] => 51.200
)

-~{}~ 28.02.06 20:22:

да ты был прав... а что делать?
У меня походу фаил из которого я беру данные - кои8-р а пхпшный - цп1251
 

AXP

Новичок
Спасибо огромное, заработало!

Еще один вопрос: А если у меня в тексте появляется много таких строк
"Металл: <b>51.200"
Металл: <b>821.200
Металл: <b>14.000
Металл: <b>531.000"

Мне надо найти одну, выделить из нее значение металла, обработать и заменить старое значение металла на новое. Циклом while(preg_replace) не получилось - просто находит одно и то же первое значение. Думал можно просто методом исключения(добавлять в маску как исключения уже измененные значения)... Но это слишком ресурсоемко... может есть другой, более красивый способ?
 
Сверху