Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить регулярку, RegExp 
:(
    Опции темы
geograph
Дата 16.9.2009, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 28.8.2007

Репутация: нет
Всего: нет



Господа, помогите составить регулярное выражение. Нужно в тексте найти строку, длинной 8-9 символов, содержащую маленькие латинские буквы и цифры. Но, строка обязательно должна содержать и буквы, и цифры, т.е. если строка будет полностью из букв, то она не подходит.
Написал такую регулярку, надо подправить, чтобы подходила по условиям обозначенным выше:
[a-z0-9]{8,9}
PM MAIL   Вверх
Mabramyan
Дата 17.9.2009, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 3.7.2007
Где: Алматы

Репутация: нет
Всего: нет



[([a-z0-9]*[a-z]+[a-z0-9]*[0-9]+[a-z0-9]*)([a-z0-9]*[0-9]+[a-z0-9]*[a-z]+[a-z0-9]*)]{8,9}
PM MAIL WWW   Вверх
geograph
Дата 17.9.2009, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 28.8.2007

Репутация: нет
Всего: нет



Хм.. смысл конструкции понятен, но почему-то не работает :(
PM MAIL   Вверх
Romikgy
Дата 17.9.2009, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



в регулярных выражениях нет условного отрицания....
могу посоветовать сделать в 2 шага 
1. 
Цитата(geograph @  16.9.2009,  21:43 Найти цитируемый пост)
[a-z0-9]{8,9} 

2. 
выбросить из найденого все что найдет
\d{8,9}|[a-z]{8,9}

ну или перебрать все варинаты для 8 знаков а потом для 9


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
AntonN
Дата 18.9.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



пум-пурум..
http://forum.sources.ru/index.php?showtopi...t&p=2369704
вроде бы работает


--------------------
user posted image
PM MAIL WWW   Вверх
Romikgy
Дата 18.9.2009, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



и ловит все...
даже 123456789 такое...


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Romikgy
Дата 18.9.2009, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



так у мя правильно работает (вроде)
Код

procedure GetSlovoList(Str: String; LB: tstrings);
var RE,r2: TRegExpr;
    Ulist: TStrings;
    i: Integer;
begin
RE:=TRegExpr.Create;
r2:=TRegExpr.Create;
 try
  r2.ModifierG:=r.ModifierG;   
    re.Expression:='[a-z0-9]{8,9}';
    if re.Exec(Str) then
    repeat
      case Length(re.Match[0]) of
      8: begin
            r2.Expression:='[a-z]{8}|[0-9]{8}';
           if not r2.Exec(re.Match[0]) then
            lb.Add(  nil ,re.Match[0] );
         end;
      9: begin
            r2.Expression:='[a-z]{9}|[0-9]{9}';
           if not r2.Exec(re.Match[0]) then
            lb.Add(  nil ,re.Match[0] );
         end;
      end;
    until not re.ExecNext;
 finally
  RE.Free;
  r2.Free; 
 end;
end;



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
AntonN
Дата 19.9.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



Romikgy, 
Цитата

даже 123456789 такое... 

оно и у меня ловит, тока ему нужны слова и с цифрами и с буквами smile
вот тока я сам забыл сделать, чтобы и цифры обязательно были smile


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.