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

  • Май 20, 2013, 21:44:17 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

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

Новости:

На форуме было сделано несколько небольших изменений...

1) Расширено поле поиска, теперь можно выбрать, искать в текущей теме, текущем разделе, по всему форуму, или с помощью Google.

2) Новым участникам форума (до 20-ти сообщении) над формой создания новой темы отображается информационный блок с некоторыми правилами и рекомендациями по созданию новой темы.

17.07.2010

Реклама

Автор Тема: Регулярные выражения - освоение  (Прочитано 2475 раз)

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

aranea [?]

Подскажите в autoit свой синтаксис регулярных выражений? если нет то где можно найти русскую справку по теме, английская не дается вообще мне для понимания :wacko:




  Записан

Kaster [?]

  • Глобальный модератор
  • Бритва, Бритва Оккама
  • *
  • *****
  • Репутация: 581
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 3751
  • Версия AutoIt: 3.3.8.1
  • Мой Аватар, он лучший самый
    • Награды
Re: Регулярные выражения - освоение
« Ответ #1, Отправлен: Август 12, 2010, 01:10:18 »
ну, свой не свой, но есть - PCRE.
именно касаемо рег. выражений, более менее на русском распедалено в провославной русской справке от г-на Иванова. Взять можно тут - AutoIt Russian Documentation v3.2.5.4
Сама функция компиляции выражения
Код: AutoIt [Выделить]




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

Vlasssov [?]

  • Осваивающий
  • **
  • Репутация: 22
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 362
  • Гопломах
    • Награды
Re: Регулярные выражения - освоение
« Ответ #2, Отправлен: Ноябрь 11, 2010, 10:46:14 »
Что-то я никак не пойму, может кто объяснит текст из примера:

Код: AutoIt [Выделить]
;Option 3, global return, old AutoIt style
$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 3)

for $i = 0 to UBound($array) - 1
    msgbox(0, "RegExp Test with Option 3 - " & $i, $array[$i])
Next


 
Если я правильно понял, конструкция (.*?) представляет из себя "любой символ". Именно эта конструкция и попадает в массив? Судя по помощи, эта конструкция означает: повторять кучу раз любой символ, пока не встретится конструкция </(?i)test>'. А если там символы переноса строки Их надо как-то обозначать?

Вообщем мне надо получить все символы между двумя фрагментами. 





  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 348
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 497
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Регулярные выражения - освоение
« Ответ #3, Отправлен: Ноябрь 11, 2010, 11:03:56 »
Чтобы перенос строки попадал под значение "любой символ"(точка), нужно вначале регэкспа ствить (?s)
Код: AutoIt [Выделить]
StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '(?s)<(?i)test>(.*?)</(?i)test>', 3)
Ключ (?i) также можно использовать единожды
Код: AutoIt [Выделить]
StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '(?s)(?i)<test>(.*?)</test>', 3)




  Записан
Уроки по регулярным выражениям на AutoIt: RegExp

Vlasssov [?]

  • Осваивающий
  • **
  • Репутация: 22
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 362
  • Гопломах
    • Награды
Re: Регулярные выражения - освоение
« Ответ #4, Отправлен: Ноябрь 11, 2010, 11:27:23 »
Помогло.. Где-нибудь вообще в пространстве есть НОРМАЛЬНАЯ документация по регулярным выражениям, желательно с примерами?
Постоянно в поиске  выскакивает вот это:
http://www.pcre.ru/docs/
Ну там нифига не работе, естественно. Вот что они написали про текст между тэгами

# Пример в Php
$text = '<item>Какой-то текст</item>';
$data = array();
preg_match('|<item>(.*)</item>|Uis', $text, $out);
# $out[1] будет сожержать строку 'Какой-то текст'
http://www.pcre.ru/examples/tags/text/22/

Ужос!!! :o




  Записан

Redline [?]

  • AutoIt Гуру
  • *****
  • Репутация: 348
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 497
  • Версия AutoIt: 3.3.8.1
    • Награды
Re: Регулярные выражения - освоение
« Ответ #5, Отправлен: Ноябрь 11, 2010, 11:49:44 »
Vlasssov  [?]
Цитата
Где-нибудь вообще в пространстве есть НОРМАЛЬНАЯ документация по регулярным выражениям
Лично я смотрел немного здесь
Ссылка из хелпа http://www.autoitscript.com/autoit3/pcrepattern.html
Здесь глянь ссылки и книгу(книга вещь!, но много букв  :D) Помощь по Регулярным выражениям




  Записан

AZJIO [?]

Re: Регулярные выражения - освоение
« Ответ #6, Отправлен: Ноябрь 11, 2010, 13:25:24 »
Vlasssov
Посмотри здесь




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1941
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 6235
  • Версия AutoIt: 3.3.8.1
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Re: Регулярные выражения - освоение
« Ответ #7, Отправлен: Ноябрь 11, 2010, 15:11:13 »
Redline  [?]
Цитата
Ключ (?i) также можно использовать единожды
Тогда ужк вместе с «s»:
Код: AutoIt [Выделить]
'(?si)<test>(.*?)</test>'





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


AutoIt is simple, subtle, elegant.

   Онлайн видео!

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


Мои работы

Vlasssov [?]

  • Осваивающий
  • **
  • Репутация: 22
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 362
  • Гопломах
    • Награды
Re: Регулярные выражения - освоение
« Ответ #8, Отправлен: Ноябрь 11, 2010, 15:34:40 »
Спасибо. Еще один вопрос. Из текста между двумя известными фрагментами, надо изъять только цифры. Цифр разно количество.
Что-то типа:
$array = StringRegExp('<test>a111</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 3)

Вот нужно 111 получить. Как это сделать?






  Записан

dwerf [?]

  • AutoIt Гуру
  • *****
  • Репутация: 209
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 478
  • Использует ArchLinux
    • Награды
Re: Регулярные выражения - освоение
« Ответ #9, Отправлен: Ноябрь 11, 2010, 15:39:50 »
Код: AutoIt [Выделить]
$array = StringRegExp('<test>a111</test> <test>b</test> <test>c</Test>', '<(?i)test>(\d*?)</(?i)test>', 3)




  Записан
00110110001000001101000011010011001

Vlasssov [?]

  • Осваивающий
  • **
  • Репутация: 22
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 362
  • Гопломах
    • Награды
Re: Регулярные выражения - освоение
« Ответ #10, Отправлен: Ноябрь 11, 2010, 16:07:22 »
Vlasssov
Посмотри здесь
Это круто!!! :laugh:




  Записан

Vlasssov [?]

  • Осваивающий
  • **
  • Репутация: 22
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 362
  • Гопломах
    • Награды
Re: Регулярные выражения - освоение
« Ответ #11, Отправлен: Ноябрь 11, 2010, 21:38:51 »
Код: AutoIt [Выделить]
$array = StringRegExp('<test>a111</test> <test>b</test> <test>c</Test>', '<(?i)test>(\d*?)</(?i)test>', 3)
Не работает, что-то, пробовал я так. Вот что сделал
Код: AutoIt [Выделить]
$pat = '(?is)<test>(.*?)</test>'
$array = StringRegExp('<test>a111</test>',$pat, 3)
$s = StringRegExpReplace($array[0],'\D',"")




  Записан

dwerf [?]

  • AutoIt Гуру
  • *****
  • Репутация: 209
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 478
  • Использует ArchLinux
    • Награды
Re: Регулярные выражения - освоение
« Ответ #12, Отправлен: Ноябрь 11, 2010, 21:50:18 »
Код: AutoIt [Выделить]
$array = StringRegExp('<test>a111</test> <test>2b</test> <test>c1</Test>', '(?i)<test>.*?(\d+).*?</test>', 3)




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Разделение текста до и после пустой строки (регулярные выражения)
Регулярные выражения и прочее
Latoid 3 1708 Последний ответ Декабрь 10, 2009, 13:52:38
от Latoid
AutoIt 3.3.6.0 - тормозят регулярные выражения
Регулярные выражения и прочее
Suppir 11 3081 Последний ответ Апрель 01, 2010, 17:48:18
от Suppir
С какой литературы начать освоение с полного нуля?.
Общение
Spanishpilot 17 3056 Последний ответ Май 26, 2010, 06:14:56
от Belfigor
Перенесено: С какой литературы начать освоение с полного нуля?.
AutoIt для новичков
Kaster 0 859 Последний ответ Май 25, 2010, 12:06:28
от Kaster
Полезные регулярные выражения для SciTE
Инструменты и справка по AutoIt
CreatoR 9 4866 Последний ответ Январь 23, 2012, 13:21:22
от CreatoR
Регулярные выражения: Как убрать все что вне круглых скобок?
Регулярные выражения и прочее
Kalisnik 2 2059 Последний ответ Февраль 11, 2011, 20:26:34
от CreatoR
 Закреплено  Правила раздела (Регулярные выражения и прочее)
Регулярные выражения и прочее
CreatoR 0 1479 Последний ответ Февраль 13, 2011, 00:26:49
от CreatoR
Перенесено: Полезные регулярные выражения для SciTE
Общение
CreatoR 0 912 Последний ответ Апрель 02, 2011, 14:23:51
от CreatoR
Вычисление выражения, полученого со страницы в браузере
Стол заказов
-ZIG-ZAG- 18 2533 Последний ответ Декабрь 12, 2011, 09:01:51
от Kaster
[Данные, строки] Сортировка чисел по условию через регулярные выражения
Регулярные выражения и прочее
ViktorSPB 36 2920 Последний ответ Июль 12, 2012, 23:22:05
от CreatoR


Реклама