[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите с написанием кода
wolfgang-abersdorf
Такая проблемма нужен сделать скрипт для обработки текста:

В тексте могут встречаться символы rn{цифры} или gn{цифры}
например :
"У нас новый товар gn{755} покупайте"
нужно вытащить код 755,для передачи в функцию замены спецсимволов на название.Каким образом это можно сделать?





Спустя 10 минут, 23 секунды (22.01.2009 - 10:25) kirik написал(а):
wolfgang-abersdorf, нужно использовать регулярные выражения. Нужно что-то типа этого?

PHP
$str 'У нас новый товар gn{755} покупайте
У нас новый товар gn{755} покупайте'
;
preg_match_all('/{(\d+)}/'$str$matches);
echo 
'<pre>';
print_r($matches[1]);

Спустя 9 минут, 26 секунд (22.01.2009 - 10:34) wolfgang-abersdorf написал(а):
kirik
Спасибо! Полчаса парился с составлением шаблона для регулярного выражения.
Не подскажешь где можно найти подробный справочник по операторам регулярных выражений?

Спустя 1 час, 9 минут, 33 секунды (22.01.2009 - 11:44) Sylex написал(а):
данный пример вытащит ВСЕ числа, если будут

Спустя 2 часа, 43 минуты, 45 секунд (22.01.2009 - 14:27) twin написал(а):
Цитата
данный пример вытащит ВСЕ числа, если будут

Вернее, он вытащит все числа в фигурных скобках. Для более корректного поиска лучше избегать таких возможных казусов:
PHP
preg_match_all('/\s[a-z]{1,2}{(\d+?)}/'$str$matches);

Спустя 3 часа, 49 минут, 22 секунды (22.01.2009 - 18:17) Sylex написал(а):
twin
точно smile.gif

Спустя 1 час, 33 минуты, 18 секунд (22.01.2009 - 19:50) kirik написал(а):
Цитата (Sylex @ 22.01.2009 - 03:44)
данный пример вытащит ВСЕ числа, если будут

Насколько я понял, автору требуется вытащить всё число из скобок, потому что оно является id-шником какой-то записи в БД /* или не БД */. =)

Цитата (wolfgang-abersdorf @ 22.01.2009 - 02:34)
Не подскажешь где можно найти подробный справочник по операторам регулярных выражений?

Я использую иногда эту шпаргалку =)

Спустя 5 минут, 26 секунд (22.01.2009 - 19:55) twin написал(а):
Вы правильно поняли, только задача решена не в полном объёме. Ваш вариант вытащит ВСЕ комбинации скобка-цифры-скобка. А автору нужны числа из комбинаций буква(или две)-скобка-цифры-скобка.

Спустя 7 минут, 50 секунд (22.01.2009 - 20:03) kirik написал(а):
Цитата (twin @ 22.01.2009 - 11:55)
А автору нужны числа из комбинаций буква(или две)-скобка-цифры-скобка.

Каюсь. Был не прав =)

Спустя 16 часов, 43 минуты, 17 секунд (23.01.2009 - 12:47) wolfgang-abersdorf написал(а):
Спасибо! Cпасибо всем за множество советов.
Автор конечно ламер но не полный.
/rn{(\d+)}/ и /gn{(\d+)}/ дописать уж сообразил)))

Теперь думаю как использовать preg_replace_callback() для замены {435} на значение соответствующее id в БД

Спустя 25 минут, 58 секунд (23.01.2009 - 13:12) twin написал(а):
PHP
function replac($a)
{
$res mysql_query("SELECT `fileds` FROM..... `id`='".$a[1]."'..... ");

return 
mysql_result($res,0,0);
}
 
$str 'У нас новый товар gn{755} покупайте
У нас новый товар gn{755} покупайте'
;
$matches preg_replace_callback("/\s[a-z]{1,2}{(\d+)}/i""replac"$str);
echo 
'<pre>';
echo 
$matches;

Спустя 17 минут, 43 секунды (23.01.2009 - 13:30) wolfgang-abersdorf написал(а):
Ваще спасибо теперь

Спустя 11 часов, 24 минуты, 17 секунд (24.01.2009 - 00:54) Lumos написал(а):
Цитата (wolfgang-abersdorf @ 22.01.2009 - 07:34)
kirik
Спасибо! Полчаса парился с составлением шаблона для регулярного выражения.
Не подскажешь где можно найти подробный справочник по операторам регулярных выражений?

Я бы посоветовал в придачу ещё и эту программу The Regulator 2.0, позволяющая составлять и тестировать регулярные выражения. Реально поможет как профи, желающим сэкономить время, так и новичкам, которым нужно освоиться с довольно сложным приемом программирования. Есть функция поиска нужного regexp'а в Интернете.
http://regex.osherove.com/ user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.