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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Regular Expressions 
:(
    Опции темы
Christoph
Дата 26.10.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



Вопрос по регуляркам, читал статью на винграде по Regular Expressions, написано

Код

Составные части регулярных выражений
Символы.
Cимвольные классы (перечни символов + метасимволы - границы слов).
Фиксирующие директивы (метасимволы - разделители строк).
Квантификаторы (метасимволы - повторения).
Альтернативы (метасимволы - варианты).
Группировки (метасимволы - подвыражения).
Модификаторы.


Обязательно ли должно Regular Expressions, содержать вот это все?
например -?\d+ . Где понять где какая часть и что там?


--------------------
user posted image
PM MAIL ICQ   Вверх
kemiisto
Дата 26.10.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(Christoph @  26.10.2008,  16:24 Найти цитируемый пост)
Обязательно ли должно Regular Expressions, содержать вот это все?

Нет, конечно. Только то, что нужно в конкретном случае.

Цитата(Christoph @  26.10.2008,  16:24 Найти цитируемый пост)
например -?\d+ . Где понять где какая часть и что там? 

Признаться, не очень понял вопрос...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Christoph
Дата 26.10.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



-?\d+  Это регулярное выражение. не понимаю как оно сформировалась :( и что там означает каждая часть, там минус там плюс...хоть убейте не понимаю


--------------------
user posted image
PM MAIL ICQ   Вверх
kemiisto
  Дата 26.10.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



В регулярном выражении 
Код

-?\d+
 присутствуют:
  • символ (-);
  • символьный класс в короткой записи (он очень популярен, посему для него существует короткая запись) (\d);
  • два квантификатора в короткой записи (опять же по причинам широкой распространённости) (? и +).
Означает такой шаблон следуещее: символ - (который может отсутствовать), за которым следует любое кол-во цифр. Т.е. фактически это шаблон положительного или отрицательного целого числа.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Christoph
Дата 26.10.2008, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



Немного понял, спасибо тебе kemiisto, тему не закрываю, буду сидеть еще разбирать, по мере накопления вопросов буду писать


--------------------
user posted image
PM MAIL ICQ   Вверх
Christoph
Дата 27.10.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



Вот не понял еще чего, порядок записи Regular Expression. тот же пример 
Код

-?\d+


идем символ потом, квантификатор,символьный класс, и опять квантификатор, можно ли бы написать так?

Код

-?+\d



--------------------
user posted image
PM MAIL ICQ   Вверх
kemiisto
  Дата 27.10.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Christoph, порядок тут очень важен. Квантификаторы существует не сами по себе, они следуют за символом (символьным классом и т.п.) и 
Цитата(kemiisto @  24.5.2008,  22:11 Найти цитируемый пост)
Показывают, сколько раз может повторяться предыдущий символ (символьный класс, альтернатива и т.д.)


Код

-?\d+

Сначала идёт символ '-', который может повторяться 0 или 1 раз, затем - любая цифра, которая может повторяться 1 или более раз. Вот. smile 

Это сообщение отредактировал(а) kemiisto - 27.10.2008, 16:22


--------------------
PM MAIL WWW GTalk Jabber   Вверх
APXEOLOG
Дата 27.10.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А вот если мне надо сделать регулярку для url(*.png), как мне записать это? Я пишу url\(+\.png\)  это будет верным?
--------------------
Ученые долго не знали как назвать частоту.Потом так и назвали Hz.
PM MAIL ICQ   Вверх
Christoph
Дата 27.10.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



я не знаю...но попробую предположить что так
Код

.png+\D+





--------------------
user posted image
PM MAIL ICQ   Вверх
Christoph
Дата 27.10.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



Я все таки не могу вкурить как составить регулируемое выражение? можете кинуть пару заданий хочу потренироваться


--------------------
user posted image
PM MAIL ICQ   Вверх
Matematik
Дата 27.10.2008, 19:37 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

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



Возьми программку http://regexpstudio.com/RegExpStudio.html (http://narod.ru/disk/3433914000/TestRExp.7z.html)
Все очень наглядно.
Тестируй на простых примерах 
http://forum.vingrad.ru/articles/topic-213075.html
user posted image

тут учебник с примерами на англ. яз. http://www.regular-expressions.info/ (см. Examples и Tutorial)
http://www.regular-expressions.info/regexbuddy.html - еще хорошая программа для работы с регулярками со множеством примеров и возможностей, платная.

PM MAIL WWW ICQ   Вверх
Christoph
Дата 4.11.2008, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



Все равно не могу понять по какому принципу построить рег. выражение, ну как .....например нужна получить строчку между точками, как это записать?


--------------------
user posted image
PM MAIL ICQ   Вверх
kemiisto
Дата 5.11.2008, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(Christoph @  4.11.2008,  21:53 Найти цитируемый пост)
строчку между точками, как это записать?

Код

\..+\.

или так
Код

\..+?\.

Первый вариант находит максимально длинную строчку, заключённую между двумя точками, второй - первое же вхождение. Различие в жадном и нежадном квантификаторах (+ и +?). Понятно?

Тут, вроде, всё просто. Разберём первое выражение:
\..+\.
\. - символ точки. Почему с \? Потому что просто . означает любой символ. В таком случае используем приём, который называется защита метасимвола (аналог escape-последовательностей, например, \t - табуляция). + - квантификатор.

P.S. Надо, кстати, добавить про защиту метасимволов в статью...


Это сообщение отредактировал(а) kemiisto - 5.11.2008, 00:58


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Christoph
Дата 5.11.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



Кемисто ты меня убей я нифига не понял smile у тебя есть аська?

Добавлено через 6 минут и 38 секунд
А так нельзя? 
Код

\..+


просто понять не могу в каком порядке это все ставить


--------------------
user posted image
PM MAIL ICQ   Вверх
Christoph
Дата 6.11.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

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



Порядок записи рег выражения есть или нет? а то я вижу записывают как хотят...


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

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

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

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

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


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

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


 




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


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

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