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

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

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

Новости:

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

:Typing:

Реклама

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

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

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
axlwor
Будет еще один небольшой урок и уже после этого все уроки перекочуют в отдельную тему без комментариев и думаю там можно будет обойтись без ссылок  ;)
AZJIO
Спасибо за замечания.

Всем вопрос:
можно ли в предпоследний пример в последнем уроке решить задачу одним выражением? У меня есть мысль - сделать обратную ссылку на вертикальную табуляцию (или ее отсутствие) и потом вставлять ее перед запятой  :wacko:, но реализовать не удалось.
Тому кто сможет решить - медаль  :sorcerer:
« Последнее редактирование: Июнь 11, 2011, 17:26:46 от CreatoR »



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

focus [?]

  • Новичок
  • *
  • Репутация: 17
  • Offline Offline
  • Сообщений: 56
  • Версия AutoIt: 3.3.6
    • Награды
Дополню данную "КОПИЛКУ !!" небольшёй поправкой. Пример1 способ 3.Да, в таком виде - проблема в кодировке. Попробовал так
Код: AutoIt [Выделить]
$sUrl = 'http://www.gismeteo.ru/city/daily/5002/'
$sHTML = BinaryToString(InetRead($sUrl), 4)
ConsoleWrite($sHTML & @CRLF)
Стало правильно (по русски) показывать. P.S. Увидел здесь Re: Содержимое между тегами




  Записан

Kaster [?]

  • Глобальный модератор
  • *
  • *****
  • Репутация: 502
  • Online Online
  • Пол: Мужской
  • Сообщений: 3286
  • Версия AutoIt: 3.3.8.1
  • Мой Аватар, он лучший самый
    • Награды
очень странный топик, никогда с первого раза не грузит всю страницу. надо как минимум 1 раз обновлять, а то и больше




  Записан
Конференция посвященная AutoIt на jabber.ru - autoit@conference.jabber.ru
Как попасть на конференцию читаем тут
Файлы можете качать сюда - Файловая область
Продолжать дискуссию в теме отмеченной как "Решенная" - моветон.
Банхамером не обладаю, так что расслабьтесь ;)
Банхамером обладаю, так что не расслабляться :Ban:

axlwor [?]

обещают закрыть  :D




  Записан

CreatoR [?]

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




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


AutoIt is simple, subtle, elegant.



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


Мои работы

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
AZJIO
Хорошие замечания!
Но я не могу вносить изменения в ту тему  :wall_brake:

Модераторы/Администраторы пожалуйста подправьте здесь Урок 2 / Метасимволы.Дополнительные
TitleBox"\b" - граница слова (например, буква "b" и "g" в слове "boring" находятся на границе, а буквы "orin" нет). Работает только для букв английского алфавита!
TitleBox"\W" - не символ буквы "слова" - все что не попало в "(a-zA-Z0-9_)", т.е. русские буквы, символы пробелов, символы пунктуации и пр.




  Записан

CreatoR [?]

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




  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
AZJIO
Укажи какие теги использовать для заголовков тем/подтем (h1/h2 подойдут?) и спойлеров.
Лучше в личку.




  Записан

AZJIO [?]

В новой справке добавились метасимволы:
(?J) - allow duplicate names (разрешает дубликаты/двойные названия).
\K - reset start of match.
\G - first matching position in subject
\N - [^\n] Любой символ, который не символ перехода на новую строку (не @LF). Не работает в 3.3.6.1
\R - [\n\f\r\v] Chr(10), Chr(11), Chr(12), Chr(13) любой из символов переноса строки

Некоторые ((?J), \K, \G) не понял пока для чего...

Кроме того для \s и для классов типа [[:upper:]] сделал поправки указав конкретные диапазоны символов.

Вот тестовый скрипт для определения захвата символов





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

CreatoR [?]

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




  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 278
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 425
  • Версия AutoIt: 3.3.6.1
    • Награды
AZJIO  [?]
Цитата
(?J) - allow duplicate names (разрешает дубликаты/двойные названия).
Фридл
Цитата
Python и языки .NET позволяют сохранить текст, совпавший с круг
лыми скобками, под заданным именем. В Python используется син
таксис (?Р<имя>…), а в языках .NET – синтаксис (?<имя>…) (лично
мне этот вариант нравится больше).
В 3.3.6.1 версии возможности именовать подшаблоны я не видел или плохо смотрел.
А флаг (?J) позволяет использовать одно имя для разных шаблонов.

Цитата
В Python и .NET (но не в PHP) допускается многократное использова
ние имен в выражениях. Например, если код междугородной связи
в телефонном номере записывается в виде ‘(###)’ или ‘###-’, для
его поиска можно воспользоваться следующим выражением (исполь
зован синтаксис .NET): …(?:\((?<Area>\d\d\d)\)|(?<Area>\d\d\d)-)… Ка
кая бы из альтернатив ни совпала, код из трех цифр будет ассоцииро
ван с именем Area.

Цитата
\G - first matching position in subject
Фридл
Цитата
Метасимвол \G впервые появился в Perl и предназначался для проведе
ния глобального поиска с модификатором /g . Он совпадает с по
зицией, в которой завершилось предыдущее совпадение. При первой
итерации \G совпадает только в начале строки, как и метасимвол \A.

Если попытка поиска завершилась неудачей, позиция \G возвращается
в начало строки. Таким образом, при многократном применении регу
лярного выражения (как при использовании команды s/…/…/g или дру
гих средств глобального поиска) неудача при очередном поиске приво
дит к сбросу позиции \G для применения следующего выражения.
Тут непонятно, но кажется этот метасимвол позволяет сохранить позицию от предыдущего поиска при глобальном поиске  :wacko:

Цитата
\K - reset start of match.
Здесь могу ошибаться, но вроде оно:
Цитата
Обычно в результате неудачной попытки поиска m/…/g позиция pos воз
вращается в начало целевого текста. Но если к модификатору /g доба
вить модификатор /c, неудача не будет приводить к сбросу начальной
позиции поиска.
Похоже в AutoIt при глобальном поиске этот модификатор /c включен сразу и через \K его можно отключать.

Получается это все какие-то экзотические возможности, а вот \R и \N вполне можно употреблять.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
 Закреплено  Обсуждение 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


Реклама