Название: QRegExp Отправлено: sendevent от Ноябрь 29, 2008, 14:30 есть строка вида
Код: <start>reached data0<separator>reached data1 ... <separator>reached dataN<end> интересует чтото вроде "<start>(.*(?!<separator>))<end>" (это просто пример, што он делает понимаю, не понимаю как сказать "выбрать все кроме ...") то ли с синтаксисом никак не разберусь, то ли регекспами так не делается... ??? Название: Re: QRegExp Отправлено: Rcus от Ноябрь 29, 2008, 14:36 думаю будет проще это сделать при помощи QStringList QString::split
Название: Re: QRegExp Отправлено: sendevent от Ноябрь 29, 2008, 14:41 да, можно и сплитом, можно и в "больше чем один" этапов...
нужно - в одно выражение. тем более, казалось бы - простейшая задача, ан нет же, и тут застопорилось. Название: Re: QRegExp Отправлено: Rcus от Ноябрь 29, 2008, 17:45 Забыл спросить, вам нужно решить задачу или это разминка на тему регекспов?
Эту задачу можно решить множеством способов, например вот два (1й делает предположение относительно содержимого строки, а второй медленнее в два раза :)) Код
Код
Название: Re: QRegExp Отправлено: sendevent от Ноябрь 30, 2008, 11:11 это кусок фронтенда тулзы для себя - цели-то определены, а вот способы реализации - эксперементирую.... объемы данных небольшие - быстродействие не критично. в общем, с одной стороны - да, надо решить задачу, с другой - размялся с регвырами:)
в принципе, можно использовать выражение Код: (?:<start>|<separator>)(.*)(?:<separator>|<end>) Цитировать Note that in general regexps cannot be used to check for balanced brackets or tags. For example if you want to match an opening html <b> and its closing <b>, you can only use a regexp if you know that these tags are not nested; the html fragment, <b>bold <b>bolder</b></b> will not match as expected. If you know the maximum level of nesting it is possible to create a regexp that will match correctly, but for an unknown level of nesting, regexps will fail. решение - использую связку из регекспов (т.е. одним не обошлось), при этом <start>-<separator>-<end> - тоже регулярные выражения... если повозиться с их формированием - проблем с "balanced brackets or tags"-документами не возникает (по крайней мере, мне не попались:) )Rcus, спасибо вам большое за ответы, вопрос можно считать закрытым. |