Руководство по регулярным выражениям в Python для новичков

Руководство по регулярным выражениям в Python для новичков

Если вы программист, скорее всего, вы уже знаете, что такое регулярные выражения (regex). Шаблоны регулярных выражений реализованы почти во всех основных языках программирования, но все же мощность и универсальность этих шаблонов не осознаются большинством разработчиков.





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





Что такое регулярные выражения?

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





Существуют различные варианты использования регулярных выражений, наиболее известным из которых является команда grep в Linux . Другие приложения включают фильтрацию информации, такую ​​как извлечение адресов электронной почты и номеров телефонов из дампа данных.

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



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

как освободить память на компьютере

Регулярные выражения: совпадающие символы и последовательности

Regex - это совершенно новый язык сам по себе. Механизм регулярных выражений интерпретирует шаблоны, состоящие из нескольких символов, имеющих определенные значения. Базовые литералы, такие как буквенно-цифровые символы, соответствуют друг другу. Но сложные символы, такие как $, *, +, {и т. Д., Помогают в сопоставлении более высокого порядка.





  1. Звездочка (*): Соответствует предыдущему символу ноль или более раз. Буквальное значение символа - «Элемент, умноженный в n раз». Например, если регулярное выражение abc * , совпадающими строками будут ab, abc, abcc, abccc, abcccc и т. д. Выражение [до н.э]* будет соответствовать bc, bcbc, bcbc и т. д.
  2. Подробнее (+): Один или несколько раз соответствует предыдущему символу. Работа + характер похож на * , но + символ пропускает образец, если символ не встречается. Например, abc + будет соответствовать abc, abcc, abccc и т. д., но не ab.
  3. Вопросительный знак (?): Соответствует предыдущему символу ноль или один раз. Например, узор abc? будет соответствовать только ab и abc.
  4. Труба (|): Используется как двоичный ИЛИ оператор. Соответствует любому из символов, предшествующих и следующих за вертикальной чертой. Например, а | б будет соответствовать либо a, либо b.
  5. Точка (.): Соответствует персонажу, личность которого неизвестна. Например, a.c будет соответствовать aac, abc, acc, a2c и так далее.
  6. Морковь (^): Соответствует первому символу в шаблоне. Например, ^ Ра будет соответствовать словам, начинающимся с Из такие как Rabbit, Raccoon и Random.
  7. Доллар ($): Соответствует последнему символу в шаблоне. Например, $ будет соответствовать словам, оканчивающимся на ан такие как Ван, Дэн и План.
  8. Дефис (-): Используется для определения диапазона символов. Например, [0-9] будет соответствовать всем однозначным цифровым символам.

В шаблонах регулярных выражений используются следующие специальные последовательности:

  1. К: Возвращает совпадение, если в начале строки присутствуют следующие символы. Например, A будет соответствовать словам, начинающимся с В такие как The, Them, They и т. д.
  2. b: Возвращает совпадение, если символ находится в начале или в конце слова. Например, bmad а также сумасшедший b будет соответствовать таким словам, как сделал а также кочевник соответственно.
  3. B: Возвращает совпадение, если символ не найден в начале или конце слова.
  4. d: Соответствует числовым символам, присутствующим в строке. Например, / д * будет соответствовать таким числам, как 1, 12, 1232 и т. д.
  5. D: Соответствует нечисловым символам в строке. / D будет соответствовать a, b, c, f и т. д.
  6. s: Соответствует пробелу в тексте.
  7. S: Соответствует непробельному символу в тексте.
  8. в: Возвращает совпадение, если строка содержит буквенно-цифровые символы, включая символы подчеркивания. Например, в будет соответствовать a, b, c, d, 1, 2, 3 и т. д.
  9. В: Возвращает совпадение, если строка не содержит буквенно-цифровых символов или знаков подчеркивания.
  10. С УЧАСТИЕМ: Соответствует символам в конце строки. Например, конец Z будет соответствовать словам, оканчивающимся на конец таких как сгибание, исправление, укладка и т. д.

Методы Python для регулярных выражений

В Python повторно Библиотека предоставляет все необходимые функции и утилиты, необходимые для реализации регулярных выражений в ваших программах. Вам не нужно загружать библиотеку с помощью pip, поскольку она поставляется с предустановленным интерпретатором Python.





Чтобы импортировать повторно библиотеки на Python, добавьте в свой скрипт следующий код:

import re

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

Соответствие()

В re.match () Метод в Python возвращает объект регулярного выражения, если программа находит совпадение в начале указанной строки. Эта функция принимает два основных аргумента:

re.match(pattern, string)

...куда шаблон является регулярным выражением и нить это текст, который необходимо найти.

Взгляните на приведенный ниже фрагмент кода.

import re
match = re.match(r'Word', 'This sentence contains a Word')
print(match)

В р символ перед строкой обозначает необработанную строку.

Выход:

None

Вышеупомянутый код возвращает Никто потому что Слово не присутствовал в начале строки.

Если совпадение найдено, его можно распечатать, используя группа() метод, принадлежащий объекту регулярного выражения.

import re
match = re.match(r'Word', 'Word is hard to read')
print(match.group(0))

Выход:

Word

В исследовать () Метод принимает те же аргументы, что и re.match (). Хотя match () возвращает только совпадения, присутствующие в начале строки, поиск() вернет совпадения, найденные по любому индексу в строке.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
print(match.group(0))

Обратите внимание, что соответствие() а также поиск() методы вернут только одно совпадение с образцом. В вышеупомянутом коде Слово появляется дважды. Но поиск() функция будет соответствовать только первому вхождению слова.

Word

Найти все()

Как вы уже догадались, найти все() метод возвращает все возможные совпадения в строке.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
for elem in match:
print(elem)

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

Расколоть()

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

import re
split = re.split(r'and', 'This word and that and this are different.')
print(split)

Выход:

['This word', 'that', 'this are different.']

Sub ()

В sub () Метод позволяет пользователю заменить конкретное слово на шаблон. Требуются следующие аргументы.

re.sub(pattern, replacement, string)

Рассмотрим этот фрагмент кода:

import re
result = re.sub(r'and', 'or', 'Dave and Harry must be punished.')
print(result)

Выход:

Dave or Harry must be punished.

Скомпилировать ()

В re.compile () метод в повторно библиотека позволяет пользователю хранить в памяти скомпилированную версию шаблона регулярного выражения. Затем, используя скомпилированный объект, пользователь может быстро отфильтровать указанный текстовый дамп на соответствие шаблонам.

import re
pattern = re.compile('Python')
match = pattern.findall('Python is a great language for writing scripts. Python is easy to learn.')
print(match)

Эта функция в основном используется для сохранения шаблонов, которые являются ресурсоемкими и требуют много времени для выполнения. Предварительная компиляция и сохранение паттерна как объекта решает эту проблему.

Используйте возможности регулярных выражений с помощью Python

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

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

Делиться Делиться Твитнуть Эл. адрес Шпаргалка по Python RegEx для начинающих программистов

Используйте этот список регулярных выражений Python, чтобы научиться лучше использовать этот универсальный язык программирования.

Читать далее
Похожие темы
  • Программирование
  • Программирование
  • Python
Об авторе Дипеш Шарма(Опубликовано 79 статей)

Дипеш - младший редактор Linux в MUO. Он пишет информационные руководства по Linux, стремясь доставить удовольствие всем новичкам. Не уверен насчет фильмов, но если вы хотите поговорить о технологиях, он ваш парень. В свободное время он может читать книги, слушать разные музыкальные жанры или играть на гитаре.

Ещё от Deepesh Sharma

Подписывайтесь на нашу новостную рассылку

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

Нажмите здесь, чтобы подписаться