Russian Qt Forum

Qt => Общие вопросы => Тема начата: merke от Апрель 09, 2011, 06:49



Название: Помогите составить регулярное выражение
Отправлено: merke от Апрель 09, 2011, 06:49
Всем привет!

Необходимо пропарсить уйму VB кода и выдернуть из него необходимые данные. В регулярных выражениях пока нуб, а времени нет на их изучение.

Допустим имеются в коде строки вида:

function1(mydir + strmas.st1, goto.jopa, mydb.strBasa1 + \".db\", _
                                                      helloworld(i), helloo(i) + guns)
...
...
function2(mydir + strmas.st1, goto.jopa, mydb.strBasa2 + \".db\", _
                                                      helloworld(i), helloo(i) + guns)
...
...
function3(mydir + strmas.st1, goto.jopa, mydb.strBasa3 + \".DB\", _
                                                      helloworld(i), helloo(i) + guns)

Необходимо из этих функций выдрать Basa1, Basa2, Basa3 при условии, что в функции встречается ".db" или ".DB".
Также если функция function1, то составить такую строку Basa1:R
         если фукнция function2, то Basa2:W
         если фукнция function3, то Basa2:R


Буду очень рад помощи!!!



Название: Re: Помогите составить регулярное выражение
Отправлено: fuCtor от Апрель 10, 2011, 09:02
Вот:
(func\w*\d*).*mydb.str([\w|\d]*)\s*\+\s*\\".(db|DB)
Получишь три группы, в первой имя функции, во второй база, в третьей расширение

PS RegexBuddy советую качнуть, очень удобный инструмент для отладки и написания регулярок.


Название: Re: Помогите составить регулярное выражение
Отправлено: merke от Апрель 11, 2011, 03:48
Огромнейшее спасибо!