CreatoR's Lab Tip Знаете ли вы, что...
Пятница, 19.04.24, 12:21 PM
Приветствую Вас Гость | RSS
Главная | Уроки регулярных выражений #1,2 | Регистрация | Вход
» Меню сайта

» Разделы новостей
Downloads [4]
Новости о новых утилитах и об изменении существующих в разделе Downloads
Сайт [3]
Новости сайта
Operaтивные новости [0]
Новости касающиеся Opera

» Случайная цитата
Алкоголь не помогает найти ответ, он помогает забыть вопрос!

[12.06.13]
[Жизненные]
(0)

» Наш опрос
Оцените мой сайт
Всего ответов: 473

Урок 1. Введение
Урок 2. Шаблоны
Урок 3. Специальные приемы
Урок 4. Практика
Урок 5. Другие RegExp в AutoIt

Замечания, дополнения и исправления приветствуются (здесь)!




Урок 1. Введение.

Уроки ориентированы на новичков, с подробными примерами и комментариями.
Почти во всех языках программирования используются регулярные выражения, у всех языков есть свои нюансы и синтаксис, поэтому все примеры будут писаться только для AutoIt.

Регулярное выражение (RegExp) - это способ сокращенного представления текста с использованием специальных символов.
Думаю все с ними сталкивались при поиске файлов на компьютере: в строке поиска можно набрать *.exe это и есть один из примеров регулярных выражений, под него подходят все имена файлов с расширением exe.

Для чего используют RegExp:

  • проверка текста на соответствие шаблону
  • для извлечения информации из текста
  • для изменения информации в тексте


В AutoIt есть только две стандартные функции для работы с RegExp: StringRegExp и StringRegExpReplace
Далее рассмотрим основное назначение и синтаксис этих функций (синтаксис шаблонов рассмотрен поверхностно, более подробно он будет изучен далее)

StringRegExp
Используется для проверки на соответствие текста шаблону и для извлечения
информации из текста.
Синтаксис.
Код
StringRegExp('test', 'pattern'[, flag ][, offset]])


  • test - непосредственно текст, над которым производятся действия, может быть одной строкой, пустой строкой, элементом массива, многострочным текстом и т.п. (но не пытайтесь передавать в качестве текста массив - результата не будет)
  • pattert - шаблон текста, по которому будет работать RegExp
  • flag (не обязательный) - флаг выполнения RegExp, может иметь значение от 0 до 4, по умолчанию flag=0:

    Самыми распространенными являются флаги 0 и 3, поскольку при флаге 0 результат менее информативен, в примерах я буду использовать flag=3
  • offset (не обязательный) - указывает позицию в строке, с которой следует начинать поиск, первый символ в строке равен 1, по умолчанию offset = 1
    Пример проверяет соответствие текста шаблону "с", при условии начала поиска со второй буквы, но поскольку в тексте буква "с" встречается только на первой позиции, то выдачи не будет
    Код
    $sText = 'слон'
    $sPattern = 'с'
    If StringRegExp($sText, $sPattern, 0, 2) Then ConsoleWrite('Совпадение!' & @CRLF)



StringRegExpReplace
Главным образом используется для изменения информации в тексте, но также может извлекать информацию *с ограничениями (будет рассмотрено ниже)
Синтаксис.
Код
StringRegExpReplace('test', 'pattern', 'replace',[ count])


  • test и pattern - те же что и в StringRegExp
  • replace - текст которым нужно заменить удовлетворяющие шаблону элемент/элементы
    Пример заменяет в тексте все последовательности цифр на "!!!"
    Код
    $sText = 'удав 11 человек 2 крокодил 4'
    $sPattern = '\d+'
    $sResult = StringRegExpReplace($sText, $sPattern, '!!!')
    ConsoleWrite($sResult & @CRLF)

    Расшифровка шаблона:
    "\d+" - любое количество цифровых символов, но не менее 1 штуки

  • count (не обязательный) - количество замен, которые нужно сделать, по умолчанию count = 0, т.е. совершить глобальные (все возможные) замены в тексте





Урок 2. Шаблоны

Элементы шаблона
Шаблон для RegExp состоит из обычных и специальных символов.
К обычным символам (литералам)относятся:
1. буквенные символы - русский и английский алфавиты
2. цифровые символы - 0 1 2 3 4 5 6 7 8 9
3. некоторые нелитеральные символы
Код
# % = , < > ! ` ~ @ & - _ / ; : " '

Фигурные/полукруглые скобки "{" "}" , могут использоваться как спец символ для обозначения повтора (будет рассмотрено ниже)
"н{15}" - совпадает с повторением символа "н" ровно 15 раз
"н{15t}" - совпадает со строчкой вида "н{15t}"
К специальным символам (метасимволам)относятся:
Код
. ^ $ \ ( ) [ ] * + ? { } |

Любой символ обозначает себя самого, если это не метасимвол.

Метасимволы


Метасимволы. Дополнительные


Метасимволы. Символы повтора или квантификаторы
» Форма входа


» Календарь новостей
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

» Language

» Поиск

» Друзья сайта

» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


 
Новогодняя ёлка
Copyright CreatoR's Lab © 2006-2024