Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > preg_match_all и регулярное выражение |
Автор: Zipo 30.3.2004, 21:39 |
Замучался, неполучается написать регулярку, чтоб правильно пропарсить конструкцию <!~int~text~!> где int - любое число (целое) text любой текст preg_match_all ("|<!~(\d+)~(.[^(~!)]*)~!>|sU", $text, $match, PREG_PATTERN_ORDER); походу что-то в этом роде, но почему-то исключение по 2 символам не проходит т.е. ^(~!) - проблемка подскажите плиз |
Автор: Бекетов Роман aka Yaiu 30.3.2004, 21:41 |
в PHP |
Автор: korob2001 31.3.2004, 00:58 | ||
Если вопрос по Perl, то может это подойдёт?
Думаю что проблема в точке (.[^(~!)]*). Когда указываешь исключение, [^(~!)]* это значит все символы кроме !~(), а точка значит любой символ, ну почти ;). Другими словами, когда мы вводим конструкцию [^(~!)]*, то regexp устроит любой набор символов, прошу обратить внимание - любой (точку не напомнило?), кроме четырёх символов ()~!. Попробуй из своего шаблона убери точку и жить станет легче. |
Автор: Zipo 31.3.2004, 20:35 |
да это вопрос по php, промахнулся малек.... Думал модератор перенесет. Точка тут не причем. Ей в квадратных скобках указывается какие символы исключить. Только вот проблема в том что именно символы. |