Форум: "Прочее";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];
Внизрегулярка Найти похожие ветки
← →
antonn © (2007-10-31 18:22) [0]помогите составить регулярку. Нужно выделить в тексте служебные слова (ну обычным жирным шрифтом). Слова - группа букв разделенных пробелом, началом и концом строки. Вот такая фигня работает пока служебные слова встречаются редко:
$b=preg_replace( "#(^|[ ]|\<br\>)(CASE|WHEN|THEN|ELSE|END)(\&\#|[ ]|<br>|$)#i", "\\1<Ж>\\2</Ж>\\3" , $b );
но проблема начинается, когда слова идут подряд через пробел: THEN ELSE END. насколько я понял, при поиске первого слова захватывается пробел м/у then и else, и для else уже не выполняется условие регекспа.
Как можно заставить не захватывать пробел? или вообще как бы решить эту задачу?
← →
@!!ex © (2007-10-31 18:24) [1]php?
← →
antonn © (2007-10-31 18:28) [2]ага
← →
Eraser © (2007-10-31 18:40) [3]
> antonn © (31.10.07 18:22)
очень советую такую программулину RegEx Buddy - крайне удобно составлять регулярные выражения в ней.
← →
antonn © (2007-10-31 18:49) [4]хм, вроде много всего в нее понавешано, попробую разобраться, спасибо :)
← →
antonn © (2007-10-31 18:55) [5]хы-хы %)
$b=preg_replace( "#\b(CASE|WHEN|THEN|ELSE|END)\b#i", "\\1<Ж>\\2</Ж>\\3" , $b );
← →
antonn © (2007-10-31 18:56) [6]
> \\1<Ж>\\2</Ж>\\3
т.е. <Ж>\\1</Ж>
← →
@!!ex © (2007-10-31 19:07) [7]А написать простенький парсер не реально?
← →
antonn © (2007-10-31 19:17) [8]в каком смысле? яж и пишу собсно парсер, который слова выдергивает. Не сравнивать же мне посимвольно все это дело. Мне и скорость важна, там этих слов гораздо больше, чем в сабже.
← →
@!!ex © (2007-10-31 19:29) [9]> [8] antonn © (31.10.07 19:17)
Так посимвольно как раз будет мгновенно работать... т.к. каждый символ проверяется всего один раз.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.049 c