Форум: "Прочее";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];
ВнизПомогите с регекспом (Perl-совместимым) Найти похожие ветки
← →
DillerXX © (2008-11-22 22:24) [0]В общем есть строка вида "abcicba" и мне нужно получить из неё строку abcicba (убрать тег b). Тег может встречаться 1 или 2 раза, и в любых местах, внутри тега всега 1 символ. Мне интересно именно как получить строку, без предварительного replace.
← →
DillerXX © (2008-11-22 22:25) [1]Форум скушал тег. Ну пусть тег будет выглядеть как
abc[t]i[/t]cba
← →
antonn © (2008-11-22 23:13) [2]
</?[a-z][a-z0-9]*[^<>]*>
любой тег
← →
DillerXX © (2008-11-23 01:07) [3]У меня стоит задача получить в matched строку без тега.
← →
palva © (2008-11-23 01:20) [4]А что значит Perl-совместимый? Если на Perl, то работает такой код:
$sss = "hhhjaaakvvv";
$sss =~ s/(.)<\/b>/$1/gi;
print $sss; # hhhjaaakvvv
← →
palva © (2008-11-23 01:24) [5]Ну вот опять съедено. Ну поставил же CODE! Повторю вручную.
$sss = "hhhjaaakvvv";
$sss =~ s/(.)<\/b>/$1/gi;
print $sss; # hhhjaaakvvv
← →
palva © (2008-11-23 01:29) [6]Хорошо же работает - "амперсанд lt" тоже не отобразил. Тогда поставлю вместо угловых скобок квадратные.
$sss = "hhh[b]j[/B]aaa[b]k[/b]vvv";
$sss =~ s/[b](.)[\/b]/$1/gi;
print $sss; # hhhjaaakvvv
← →
DillerXX © (2008-11-23 01:30) [7]Это ж реплейс! :) А меня очень напрягла проблема, как же всё-таки взять и отхавать строку сразу одним запросом поиска. Только что-то в духе
"([a-zA-Z]|(.)<\/b>+)". Извини, в Qt пишу, забыл перловые модификаторы и синтаксис оформления регекспа.
← →
DillerXX © (2008-11-23 01:32) [8]Ааарррх!! *далее нецензурно*
"([a-zA-Z]|{b}(.){\/b}+)". А то [ ] не кошерно, это ж метасимвол!
← →
Дмитрий С (2008-11-23 15:49) [9]А фигурные кошерно значит:)
"([a-zA-Z]|[<]b[>](.)[<]\/b[>]+)"
← →
Дмитрий С (2008-11-23 15:50) [10]
> DillerXX © (23.11.08 01:32) [8]
Кстати а для чего у тебя + в конце?
← →
DillerXX © (2008-11-23 20:19) [11]Ну мне же всё слово отпарсить надо. Я просто прикинул возможный регксп, но он естественно неверный, т.к. в matched слово не положит.
← →
antonn © (2008-11-23 20:35) [12]ну немного смекалки... :)
$text="id_zna<b >enie</b >gfddfg id_zna[b]enie[/b]gfddfg";
echo preg_replace( "#(.+?)(</?[a-z][a-z0-9]*[^<>]*>)#i","\\1",$text );
echo "\r\n<br>".preg_replace( "#(.+?)(\[/?[a-z][a-z0-9]*[^\[\]]*\])#i","\\1",$text );
← →
DillerXX © (2008-11-23 23:29) [13]омг... ладо, в общем коллектвными усилиями вы убедил меня, что без реплейса нельзя. а antonn даже убедил что его можно записать в 1 строчку!
← →
clickmaker © (2008-11-24 16:57) [14]> без реплейса нельзя. а antonn даже убедил что его можно
> записать в 1 строчку!
text := StringReplace(StringReplace(text, "[b]", "", [rfReplaceAll]), "[/b]", [rfReplaceAll]);
тоже в одну строчку )
← →
antonn © (2008-11-24 23:08) [15]
> clickmaker © (24.11.08 16:57) [14]
это не спортивно :)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c