English | Русский | Deutsch | Български | Français | Español |
Вступление¶
Библиотека TRegExpr реализует регулярные выражения.
Регулярные выражения - простой в использовании и мощный инструмент для сложного поиска и замены, а также для проверки текста на основе шаблонов.
Это особенно полезно для проверки пользовательского ввода в формах ввода - для проверки адресов электронной почты и так далее.
Также вы можете извлекать номера телефонов, почтовые индексы и т.д. из веб-страниц или документов, искать сложные шаблоны в файлах журналов и все, что вы можете себе представить. Правила (шаблоны) могут быть изменены без перекомпиляции вашей программы.
TRegExpr реализован на чистом Паскале. Является частью Lazarus (Free Pascal) проекта. Но также существует как отдельная библиотека, которая может быть скомпилирована Delphi 2-7, Borland C ++ Builder 3-6.
Отзывы¶
Быстрый старт¶
Чтобы использовать библиотеку, просто добавьте исходники в ваш проект и далее используйте класс TRegExpr.
Благодаря FAQ вы можете учиться на чужих ошибках.
Готовое к запуску приложение Windows REStudio поможет вам выучить и отладить регулярные выражения.
Обратная связь¶
Если вы видите какие-либо проблемы, пожалуйста, создайте баг.
Документация¶
- Регулярные выражения (RegEx)
- Вступление
- Символы
- Классы символов
- Разделители
- Повторы
- Альтернативы
- Группы (подвыражения)
- Ссылки на группы (Backreferences)
- Именованные группы (подвыражения) и ссылки на них
- Модификаторы
- Проверки или заглядывания вперед и назад (Assertions)
- Не захватываемые группы (подвыражения)
- Атомарные группы
- Модификаторы
- Комментарии
- Рекурсия
- Вызовы подвыражений
- Unicode категории (category)
- Послесловие
- TRegExpr
- Часто задаваемые вопросы
- Я обнаружил ужасную ошибку: TRegExpr вызывает исключение Access Violation!
- Регулярные выражения с (? = …) не работают
- Поддерживает ли он Юникод?
- Почему TRegExpr возвращает более одной строки?
- Почему TRegExpr возвращает больше, чем я ожидаю?
- Как анализировать HTML, с помощью TRegExpr?
- Есть ли способ получить несколько совпадений шаблона на TRegExpr?
- Я проверяю пользовательский ввод. Почему TRegExpr возвращает
True
для неправильных входных строк? - Почему не жадные итераторы иногда работают в жадном режиме?
- Как использовать TRegExpr с Borland C ++ Builder?
- Почему многие примеры (включая примеры из документации) работают неправильно в Borland C ++ Builder?
- Demos
Переводы¶
Документация доступна на английском и русском языках.
Есть также старые переводы на немецкий, болгарский, французский и испанский языки. Если вы хотите помочь обновить эти старые переводы, пожалуйста, свяжитесь со мной.
Новые переводы основаны на GetText и могут быть отредактированы с помощью transifex.com.
Они уже переведены автоматически и нуждаются только в корректуре, и, возможно, копировании каких-то частей из старых переводов.
Благодарности¶
Сообществом предложено и реализовано множество функций TRegExpr.
Я не могу перечислить здесь всех, но я ценю все сообщения об ошибках, предложения функций и вопросы, которые я получаю от вас.
- Alexey Torgashin - основной контрибутор 2019-2020. реализовал именованные группы, не захватывающие группы, заглядывания вперед и назад, обратный поиск
- Guido Muehlwitz - обнаружена и исправлена ошибка в обработке больших строк
- Stephan Klimek - тестирование в CPPB и предложение / реализация многих функций
- Steve Mudford - реализован параметр Offset
- Martin Baur (www.mindpower.com) - немецкий перевод, полезные предложения
- Yury Finkel - реализовал поддержку UniCode, нашел и исправил некоторые ошибки
- Ralf Junker - Реализованы некоторые функции, много предложений по оптимизации
- Симеон Лилов - болгарский перевод
- Филип Джирсбк и Мэтью Винтер - помогли в реализации не жадного режима
- Kit Eason много примеров для документации
- Juergen Schroth - поиск ошибок и полезные советы
- Martin Ledoux - французский перевод
- Diego Calp, Аргентина - испанский перевод