Русское сообщество AutoIt

  • Май 22, 2012, 13:03:51 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: Обсуждение уроков по работе с Регулярными Выражениями (RegExp)  (Прочитано 1890 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Bloodrinker [?]

  • Новичок
  • *
  • Репутация: 14
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 208
  • Версия AutoIt: 3.3.6.1
  • <Блуждающий...>
    • Награды
В данной теме обсуждаем уроки по работе с Регулярными Выражениями (RegExp).



спасиб за уроки, но можно было еще что нибудь написать)
Чтот на уроки все добрые стали) весна влияет наверно)
« Последнее редактирование: Июнь 11, 2011, 17:29:31 от CreatoR »



  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1403
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5068
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Redline
Хорошее дело начал.

Есть примечания...
* «Ведение» это когда что то предвидится (“у меня было ведение”), а нужно видимо «Введение» :)
* Скобки лучше открывай после пробела, а то выглядит не очень (вот так).

[?]
Цитата
Важное замечание: при работе с обратными ссылками сразу после ссылки нельзя ставить цифры!
Я как то случайно нашёл недокументированную фичу в RegExp AutoIt'а (точнее подглядел её у Perl'а), которая как раз позволяет использовать цифры после обратных ссылок (странно оно правда по русский звучит :)), после открытия тикета на эту тему, эту фичу документировали:

Цитата
Remarks

To separate back-references from actual (replaced) numbers, wrap it with half-round brackets, i.e: "${1}5".

А это значит, что отделять обратные ссылки от цифр можно, используя полукруглые скобки:
Код: AutoIt [Выделить]
StringRegExpReplace($Test, ".*(\d+)", "${1}1")

P.S
Вывод:
Почаще заглядывать в справку, и смотреть на шаблоны в других ЯП.




  Записан
Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.



«Не оказываю техподдержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
CreatoR
Спасибо за ценные замечания! Исправлю.
Про ссылки сам долго искал в архиве oszone.net и нашел только такие решения, а в справке не заметил даже, т.к. чаще пользуюсь русской  :-[.
В таком случае обходные решения оставлю для истории.
Bloodrinker
Это только первый пилотный урок!
В выходные скорее всего продолжу  ;)




  Записан
Приму в дар инвайт на dirty

zlo-kazan [?]

  • Продвинутый
  • ***
  • Репутация: 88
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 343
  • Версия AutoIt: v3.3.6.1
    • Награды
Метасимволы
Цитата
"^" - совпадает с началом строки (для мультистрокового текста совпадает с началом каждой строки, но для этого необходимо включить спец флаг "(?m)", его рассмотрим позже)
Пример выводит строки из мультистрокового текста, начинающиеся с буквы "j":
Шаблон выводит только 1-е 3-х буквенные начинающиеся на j... :-)


P.S. Экзамен будет? :-)))




  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
zlo-kazan  [?]
Цитата
Шаблон выводит только 1-е 3-х буквенные начинающиеся на j... :-)P.S. Экзамен будет? :-)))
Поправил.
Оказалось трудно придумывать вразумительные примеры  :wacko:
На счет экзамена можно будет составить шаблоны посложнее для самостоятельного изучения  :D




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1403
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5068
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Redline  [?]
Цитата
"\s" - символ пробела, совпадающий с: обычным пробелом, горизонтальная табуляция, вертикальная табуляция, началом строки, возвратом каретки или началом новой страницы "( \r\n\v\t\f)"
Вертикальная табуляция? это вообще то горизонтальный/вертикальный пробел, табуляция может быть только горизонтальной :) (в справке видимо опечатка на эту тему). Кстати следует в скобки добавить и "\h" (горизонт. пробел).

Цитата
"\w" - символ буквы "слова", соответствует "(a-zA-Zа-яА-Я0-9_)"
"а-я" никак не попадает под этот шаблон, проверяй всё на деле, а также внимательнее читай справку, там написано:
Цитата
Match any "word" character: a-z, A-Z, 0-9 or underscore (_).

Цитата
"{a}" - повторить предыдущий символ (группу) ровно "a" раз. "\d{5}" соответствует пятикратному повтору цифрового символа (12345 55555 00000).
Мне кажется лучше придерживаться справке, там используется x,y, так будет понятнее.

P.S
Когда уроки закончатся, дай мне знать, я отделю всё в отдельную закрытую тему (чтобы в ней были только уроки), а в этой останется только обсуждение.




  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
CreatoR
Именно вертикальная табуляция (ну может у нее есть другое название "вертикальный пробел"  :wacko:).
С этими типографскими терминами черт ногу сломит:
http://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B
0B LINE TABULATION (vertical tabulation) вертикальная табуляция ^K \v Перемещает позицию печати к следующей позиции вертикальной табуляции. На терминалах этот символ обычно эквивалентен переводу строки.Это оставлю как есть, остальное подправлю.

Кстати по поводу "\w" меня вот это с толку сбило:
Re: Поиск без учета регистра. AutoIt не распознает русский язык в рег. выражениях

AZJIO
Спасибо. Все таки попытаюсь сделать для форума эксклюзивные и простые примеры, а заодно помучаю свой засохший мозг :)
« Последнее редактирование: Апрель 21, 2011, 16:40:37 от Redline »



  Записан

zlo-kazan [?]

  • Продвинутый
  • ***
  • Репутация: 88
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 343
  • Версия AutoIt: v3.3.6.1
    • Награды
 :laugh: Я первый кто дочитал до конца!!!  :king:
Вконце пример без тега [autoit[/autoit]




  Записан

Belfigor [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 689
  • Offline Offline
  • Сообщений: 2195
  • Версия AutoIt: 3.3.6.1
    • Награды
А сделайте ссылки в первом посте на все уроки выложенные в этой теме :).
В идеале убрать урок из первого поста и вынести в любое другое сообщение темы, в первом посте указать ссылки на все выложенные уроки (этакое содержание), и краткие комментарии или какую-то другую информацию не касающуюся какого-то конкретного урока и закрепить первое сообщение шапкой темы, ну а при развитии темы закрепить ее в разделе :)




  Записан
Любые темы внутри раздела "Разработка ботов" не названные в соответствии с правилами раздела, будут закрываться.
Любой ответ, любого пользователя в теме с предупреждением, направленный на решение вопроса, произведенный до того как предупреждение было исправлено, приведет к закрытию темы и удалению всего что было после предупреждения.

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1403
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5068
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Redline  [?]
Цитата
по поводу "\w" меня вот это с толку сбило
Да, там другое имелось в виду (что для русских букв нужно указывать «а-я», кстати про «ё» я и не знал).

zlo-kazan  [?]
Цитата
Я первый кто дочитал до конца
А середину видимо не читал...

Цитата
Вконце пример без тега
В середине тоже (там где «"\B" - не граница слова.»).

:)

Belfigor  [?]
Цитата
сделайте ссылки в первом посте на все уроки выложенные в этой теме
Лишняя работа (пока), я же написал:

[?]
Цитата
Когда уроки закончатся, дай мне знать, я отделю всё в отдельную закрытую тему




  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
Добавил недостающие тэги.
В раздел метасимволы/"[ ]"
внес отдельный блок по букве "ё" при работе с диапазонами, где привел своё мини-исследование   :graduated:

Позже напишу два небольших урока уложился в один. А дальше будут практические уроки   :reading_book: по выбору инструмента RegExp для конкретной задачи, анализу обрабатываемого текста, выявлению ключевых мест в тексте и непосредственно по составлению шаблонов.

Добавил описание для "\E" и "\Q"
« Последнее редактирование: Июнь 04, 2011, 08:40:55 от Redline »



  Записан

madmasles [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Redline  [?]
Цитата
внес отдельный блок по букве "ё"
Не знал про ё(Ё), спасибо.  :)




  Записан

madmasles [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Redline  [?]
Цитата
Не путать с грехами
:rofl:    :beer:




  Записан

axlwor [?]

А можно в первом посте поставить ссылки на другие уроки? А то я долго считал, что урок один :'(




  Записан

AZJIO [?]

Redline
Это (?=(?:[^\s]+=|$))
можно записать так
(?=[^\s]+=|$)
так как (?: означает группу не входящую в поиск, но и (?= также не входит в поиск. И результат одинаковый.
Кстати при использовании многострочного текста и (?m) нужно учитывать, что возврат каретки перед $ может попасть в захват, то есть (?m)^(.*)$ захватывает текст и символ @CR (\r)




  Записан
Вытащи сначала бревно из своего глаза, тогда поймёшь как вытащить сучёк из глаза брата своего.
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
 Закреплено  Обсуждение AutoIt бета-версий
AutoIt для новичков
CreatoR 125 17680 Последний ответ Апрель 29, 2012, 18:21:12
от inververs
Обсуждение файлового архива (баги и пожелания)
О проекте и форуме
CreatoR 2 3141 Последний ответ Июнь 02, 2011, 01:28:30
от Medic84
Обсуждение AutoIt 4.0.0.0 Final
Общение
Garrett 21 3040 Последний ответ Август 12, 2011, 16:50:58
от Odinvasya
 Закреплено  Обсуждение Web-кодинга и всего что с этим связанно
Общение
CreatoR 33 6202 Последний ответ Февраль 29, 2012, 13:31:28
от cobra2029
Обсуждение Autoit 3.3.6.1 - Финал
AutoIt для новичков
bulldog5293 3 2799 Последний ответ Май 01, 2010, 10:01:04
от Guezt Gutsy
Помогите в работе с регулярными выражениям
Регулярные выражения и прочее
webmonster 3 1422 Последний ответ Август 18, 2010, 17:25:05
от madmasles
Обсуждение FAQ'а по использованию ресурсов в AutoIt
AutoIt для новичков
Kaster 81 13967 Последний ответ Ноябрь 26, 2011, 04:33:18
от Yashied
Обсуждение на тему iPhone (4)
Общение
CreatoR 16 1757 Последний ответ Февраль 19, 2011, 00:01:40
от Yashied
 Закреплено  Уроки по работе с Регулярными Выражениями (RegExp)
Регулярные выражения и прочее
Redline 4 6355 Последний ответ Июнь 11, 2011, 15:29:45
от Redline
 Закреплено  Обсуждение AutoIt финальной версии (3.3.8.0/3.3.8.1)
AutoIt для новичков
Kaster 26 2752 Последний ответ Май 02, 2012, 20:36:28
от Viktor1703


Реклама