Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Помогите составить регулярное выражение

Автор: void* 12.6.2008, 9:42

снова прошу о помощи :)
не могу составить нормальный регэксп, чтобы искать определение полученной переменной по текстовым полям. Вот что у меня пока что получилось:

QRegExp expression("\\b[A-Za-z0-9]+?\\s+?[A-Za-z0-9]+?\\s+?[A-Za-z0-9]+?\\s+?" + word + "(?)?\\b");

т.е. смысл в том, чтобы это было не больше трех слов разделенных любым количеством пробелов, и чтобы в конце могли находиться скобки(как у функции).
основная проблема в том, что я не знаю как бы сделать так, чтобы этот регэксп был применим и к двум словам, и к трем, т.е. любому кол-ву слов, но не больше трех + полученное мною слово при наведении + возможно скобки.
вобщем надо как-то сделать чтобы такой кусок кода:
[A-Za-z0-9]+

и такой
\\s+

считался за одно выражение (то ли в скобки поместить как-то..) для того чтобы можно было применить к нему "?"
[A-Za-z0-9]+?

надеюсь на вашу помощь и на то, что понятно выразился :)

Автор: ViGOur 12.6.2008, 13:05

Могу только порекомендовать книжку по регэкспам: http://archival.ru/?q=node/1136.
Так как сам не силен в них.

Автор: void* 12.6.2008, 14:06

разобрался вроде сам :) хвала Ассистенту и его великолепной документации, такой, что даже я - полный ноль в регэкспах и со своим слабым английским разобрался в них :D вот так получилось:

QRegExp expression("([A-Za-z0-9]+)?(\\s+)?([A-Za-z0-9]+)?(\\s+)?([A-Za-z0-9]+)+(\\s+)+" + word + "(\\(?.*\\)?|\\[[A-Za-z0-9]+\\])");

неслабенький такой регэксп получился :)
а за книжку спасибо, вещь нужная, почитаю на досуге :)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)