От оснований до лучших практик: Python Regex Mastery

Regex, короткая для регулярных выражений, является мощным инструментом для сопоставления и манипулирования текстом. Он автоматизирует различные задачи обработки текста, такие как проверка адресов электронной почты, извлечение данных из файлов журнала и очистка грязных наборов данных. В то время как синтаксис Regex довольно похож на языках программирования, этот урок будет сосредоточен на том, как он работает специально в Python.

Что делает Regex?

• Извлечение данных: извлекает точки данных, такие как адреса электронной почты, номера телефонов и коды ошибок из текста. • Проверка ввода пользователя: гарантирует, что пользовательский ввод (например, адреса электронной почты, номера телефонов и пароли) в правильном формате • Поиск и замените данные: изменяет текст без вмешательства человека • автоматизация повторяющихся задач: автоматизирует обработку журналов, файлы и большие наряды.

Лучшие практики режима

• Построить постепенно: разрабатывать шаблоны режима режима шага, чтобы избежать путаницы в сложных кодовых блоках. • Эффективность теста: избегайте медленных выполнений, тестируя эффективность коррекса. • Используйте необработанные строки: предотвратите интерпретацию Backslashes как экологичные символы с помощью необработанных строк (например, R «\ d+»). • Отладка с инструментами: используйте онлайн -инструменты, такие как Regex101, чтобы помочь отладке и уточнению шаблонов.

Модуль RE

В Python функциональность корпорации предоставляется модулем RE. Этот модуль поддерживает сопоставление, поиск и манипуляции с струнами. Встроенные функции, такие как re.search (), re.match () и re.sub (), позволяют сопоставлять сложное схемы. Без модуля RE, Python поддерживает базовое сопоставление шаблонов, используя такие методы, как .find (), .startSwith (), .endswith () и .replace (). В то время как эти встроенные методы позволяют базовый сопоставление, модуль RE необходим для более продвинутых операций REGEX.

Вы можете импортировать модуль RE, используя тот же синтаксис, что и все другие импорты Python.

Обычно используется встроенные функции Regex:

Модуль RE предоставляет много полезных функций, в том числе: • re.match (): соответствует шаблону в начале строки • re.search (): находит первое вхождение шаблона • re.findall (): возвращает все входы шаблона. Возвращает количество замены • re.split (): разбивает строку по шаблону • re.compile (): компилирует шаблон в объект regex • re.fullmatch (): проверяет, соответствует ли вся строка с шаблоном • re.escape (): выходит на специальные символы в строке.

Категории корзины и их приложения персонажи и литералы

Поиск символов и литералов находит точные совпадения для указанных символов или последовательностей в строке. Это полезно для поиска фиксированных шаблонов, таких как код ошибки в файле журнала или идентификатор продукта на счете.

Основной синтаксис: • .: Соответствует любому персонажу, кроме новой линии • A, B, 1: соответствует буквальным символам A, B или 1

Пример кода:

Вывод: кошка

Классы персонажа

Классы символов разрешают поиск любого символа в определенном наборе (например, цифры, буквы). Эта категория полезна, когда вам нужно сопоставить шаблоны с различными символами, такими как извлечение номеров или дат клиента.

Основной синтаксис: • [abc]: Сопоставление любого из персонажей A, B или C • [^abc]: Соответствует любому персонажу, кроме A, B или C • [0-9]: Сопоставляет любую цифру • [a-z]: Соответствует любой строчной букве • \ d: соответствует любой цифре (эквивалентно с [0-9]• \ d: соответствует любым ненужным • \ w: соответствует любому символу слова (буквы, цифры и подчеркивания) • \ w: соответствует любому символу, не являющемуся словесным символом: \ s: совпадает с любым персонажем для пробелов (пространства, вкладки и новень

Пример кода:

Выход: [‘12345’]

Квантификаторы

Квантовы управляют, сколько раз должна повторяться шаблон, что полезно, когда данные варьируются в длину. Они пригодятся при сопоставлении повторяющихся слов или фраз, или при поиске данных, таких как адреса электронной почты, где длина может варьироваться.

Основной синтаксис: • *: совпадает с 0 или более из предыдущего элемента • +: совпадает 1 или более предыдущего элемента • ?: Соответствует 0 или 1 предыдущего элемента (необязательно) • {n}: совпадает точно n экземпляров предыдущего элемента • {n,}: совпадает n или больше экземпляров

Пример кода:

Выход: [‘Hello’, ‘world’]

Якоря

Якоря используются для соответствия позициям в строке, а не с символами. Они полезны для проверки шаблонов в фиксированных позициях, таких как проверка того, заканчивается ли адрес электронной почты определенным доменом или предложение заканчивается отмечкой вопроса.

Основной синтаксис: • ^: соответствует началу строки (или строке, если в многослойном режиме) • $: соответствует конец строки (или строки, если в многослойном режиме) • \ b: соответствует границе слова • \ b: соответствует границе не слова.

Пример кода:

Выход:

Группы и захваты

Группы и захваты позволяют вам извлекать и манипулировать частями строки, захватывая части соответствующего текста для последующего использования. Это особенно полезно, когда вам нужно извлечь конкретные данные, например, имена или коды ошибок из журналов.

Основной синтаксис: • (ABC): захватывает группу ABC в качестве совпадения • \ 1: ссылается на первую захваченную группу • (?: ABC): совпадает с ABC, но не захватывает его (не собирающаяся группа)

Пример кода:

Вывод: мое имя

Чередование

Чередование полезно для сопоставления одного из нескольких шаблонов. Он часто используется, когда вам нужно соответствовать различным возможностям, таким как поиск нескольких кодов ошибок в файлах журнала.

Основной синтаксис: • A | B: совпадает с A или B

Пример кода:

Выход: [‘cat’, ‘dog’]

Избегая особых персонажей

В Regex определенные символы (например, * или?) Имеют особые значения. Выход этих персонажей позволяет вам соответствовать самим буквальным персонажам, что полезно, когда они появляются в вашем вводе, но не должны интерпретироваться как метахарактеры.

Базовый синтаксис: • \.: Соответствует буквальной точке (.) • \*: соответствует буквальному звездочке

Пример кода: [‘.’, ‘.’]

Выход:

Модификаторы или флаги

Модификаторы (или флаги) изменяют, как применяются шаблоны регуляции, например, при выполнении поиска нечувствительны или обеспечения многослойного сопоставления. Они полезны для корректировки поведения поиска на основе контекста.

Основной синтаксис: • I: нечувствительное сопоставление (re.ignorecase) • g: глобальное сопоставление (найти все совпадения, неявно обрабатываемые в Python by re.findall ()) • M: Multiline Mode (Matches Start ^ и конец $ каждой строки)

Пример кода:

Вывод: нет привет

Заключение

REGEX является важным инструментом для обработки текста, обеспечивающей такие задачи, как извлечение данных, проверка и замена. Независимо от того, чистите ли вы данные, автоматизируете задачи или извлечение ценной информации из текста, понимание синтаксиса Regex и лучших практик является ключевым. Используя модуль Python RE, вы можете легко сопоставить сложные шаблоны и автоматизировать повторяющиеся задачи, повышая как эффективность, так и точность в вашей работе.Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Джессика Вахтел — писатель по маркетингу разработчиков в InfluxData, где она создает контент, который помогает сделать данные о мире временных рядов более понятными и доступными. Джессика имеет опыт работы в разработке программного обеспечения и технической журналистике. Подробнее от Джессики Вахтел

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *