Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

регулярное выражение Python

Регулярное выражение Python

В этом руководстве вы узнаете о регулярных выражениях (RegEx) и используете модуль Python re для работы с RegEx (с помощью примеров).

A Регистрация улар Ex Нажатие (RegEx) — это последовательность символов, определяющая шаблон поиска. Например,

06

Приведенный выше код определяет шаблон RegEx. Шаблон:любая строка из пяти букв, начинающаяся с a. и заканчивая s .

Шаблон, определенный с помощью RegEx, можно использовать для сопоставления со строкой.

Выражение Строка Соответствует?
02 17 Нет совпадений
25 Соответствие
34 Соответствие
43 Нет совпадений
57 Нет совпадений
<час>

В Python есть модуль с именем 66. для работы с RegEx. Вот пример:

15 

Здесь мы использовали 70 функция для поиска по шаблону внутри test_string . Метод возвращает объект соответствия, если поиск успешен. Если нет, возвращается 85 .

<час>

Есть несколько других функций, определенных в re модуль для работы с RegEx. Прежде чем мы рассмотрим это, давайте узнаем о самих регулярных выражениях.

Если вы уже знакомы с основами RegEx, перейдите к Python RegEx.

<час>

Укажите шаблон с помощью регулярного выражения

Для указания регулярных выражений используются метасимволы. В приведенном выше примере 99 и 100 являются метасимволами.

<час>

Метасимволы

Метасимволы — это символы, интерпретируемые механизмом RegEx особым образом. Вот список метасимволов:

[] . ^ $ * + ? {} () \ |

<час>

110 - Квадратные скобки

Квадратные скобки определяют набор символов, которые вы хотите сопоставить.

Выражение Строка Соответствует?
122 133 1 совпадение
145 2 совпадения
150 Нет совпадений
160 5 совпадений

Здесь 172 будет соответствовать, если строка, которую вы пытаетесь сопоставить, содержит любой из 184 , 193 или 208 .

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

  • 225 совпадает с 239 .
  • 242 совпадает с 251 .
  • 269 совпадает с 275 .

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

  • 297 означает любой символ, кроме a или b или с .
  • 307 означает любой нецифровой символ.
<час>

318 - Период

Точка соответствует любому одиночному символу (кроме символа новой строки 325). ).

Выражение Строка Соответствует?
334 345 Нет совпадений
351 1 совпадение
363 1 совпадение
373 2 совпадения (содержит 4 символа)
<час>

386 - Каретка

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

Выражение Строка Соответствует?
408 416 1 совпадение
421 1 совпадение
434 Нет совпадений
442 459 1 совпадение
466 Нет совпадений (начинается с 476 но без 480 )
<час>

496 - Доллар

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

Выражение Строка Соответствует?
519 521 1 совпадение
535 1 совпадение
548 Нет совпадений
<час>

555 - Пометить

Символ звезды 563 соответствует нулю или более вхождений оставшегося шаблона.

Выражение Строка Соответствует?
578 582 1 совпадение
592 1 совпадение
607 1 совпадение
614 Нет соответствия (627 не сопровождается 634 )
645 1 совпадение
<час>

650 - Плюс

Символ плюса 665 соответствует одному или нескольким вхождениям оставшегося шаблона.

Выражение Строка Соответствует?
677 686 Нет соответствия (нет 690 персонаж)
709 1 совпадение
714 1 совпадение
728 Нет совпадений (за a не следует n)
732 1 совпадение
<час>

741 - Вопросительный знак

Знак вопроса 750 соответствует нулю или одному вхождению оставшегося шаблона.

Выражение Строка Соответствует?
762 776 1 совпадение
789 1 совпадение
793 Нет совпадений (более одного 800 персонаж)
812 Нет совпадений (за a не следует n)
827 1 совпадение
<час>

836 - Брекеты

Рассмотрим этот код:841 . Это означает, по крайней мере, n , и не более m повторений шаблона, оставленного ему.

Выражение Строка Соответствует?
852 868 Нет совпадений
872 1 совпадение (в 883 )
894 2 совпадения (в 902 и 919 )
920 2 совпадения (в 930 и 940 )

Давайте попробуем еще один пример. Это регулярное выражение 951 соответствует как минимум 2 цифрам, но не более 4 цифрам

Выражение Строка Соответствует?
965 977 1 совпадение (совпадение по адресу 988 )
994 3 совпадения (1006 , 1016 , 1029 )
1030 Нет совпадений
<час>

1041 - Чередование

Вертикальная полоса 1059 используется для чередования (1064 оператор).

Выражение Строка Соответствует?
1077 1085 Нет совпадений
1092 1 совпадение (совпадение по адресу 1109 )
1119 3 совпадения (в 1123 )

Здесь 1139 соответствует любой строке, содержащей либо a или b

<час>

1140 - Группа

Скобки 1152 используется для группировки подшаблонов. Например, 1162 соответствует любой строке, которая соответствует либо a или b или с затем xz

Выражение Строка Соответствует?
1178 1181 Нет совпадений
1196 1 совпадение (совпадение по адресу 1206 )
1211 2 совпадения (в 1223 )
<час>

1235 - Обратная косая черта

Люфт 1241 используется для экранирования различных символов, включая все метасимволы. Например,

1254 соответствует, если строка содержит 1260 за которым следует 1275 . Здесь 1288 не интерпретируется движком RegEx особым образом.

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

<час>

Особые последовательности

Специальные последовательности облегчают написание часто используемых шаблонов. Вот список специальных последовательностей:

1308 - Соответствует, если указанные символы находятся в начале строки.

Выражение Строка Соответствует?
1311 1329 Соответствие
1333 Нет совпадений
<час>

1340 - Соответствует, если указанные символы находятся в начале или в конце слова.

Выражение Строка Соответствует?
1354 1361 Соответствие
1373 Соответствие
1384 Нет совпадений
1393 1406 Соответствие
1419 Соответствие
1422 Нет совпадений
<час>

1433 - Напротив 1443 . Соответствует, если указанные символы не в начале или в конце слова.

Выражение Строка Соответствует?
1455 1460 Нет совпадений
1479 Нет совпадений
1485 Соответствие
1495 1501 Нет совпадений
1512 Нет совпадений
1526 Соответствие
<час>

1538 - Соответствует любой десятичной цифре. Эквивалентно 1546

Выражение Строка Соответствует?
1552 1561 3 совпадения (в 1571 )
1581 Нет совпадений
<час>

1592 - Соответствует любой недесятичной цифре. Эквивалентно 1609

Выражение Строка Соответствует?
1610 1621 3 совпадения (в 1635 )
1640 Нет совпадений
<час>

1650 - Соответствует, если строка содержит любой символ пробела. Эквивалентно 1663 .

Выражение Строка Соответствует?
1671 1681 1 совпадение
1690 Нет совпадений
<час>

1704 - Соответствует, если строка содержит любой непробельный символ. Эквивалентно 1710 .

Выражение Строка Соответствует?
1726 1735 2 совпадения (в 1742 )
1750 Нет совпадений
<час>

1764 - Соответствует любому буквенно-цифровому символу (цифры и буквы). Эквивалентно 1772 . Кстати, подчеркните 1780 также считается буквенно-цифровым символом.

Выражение Строка Соответствует?
1793 1805 3 совпадения (в 1811 )
1821 Нет совпадений
<час>

1839 - Соответствует любому небуквенно-цифровому символу. Эквивалентно 1849

Выражение Строка Соответствует?
1854 1866 1 совпадение (в 1878 )
1884 Нет совпадений
<час>

1897 - Соответствует, если указанные символы находятся в конце строки.

Выражение Строка Соответствует?
1903 1918 1 совпадение
1922 Нет совпадений
1934 Нет совпадений
<час>

Совет: Для создания и тестирования регулярных выражений вы можете использовать инструменты тестирования регулярных выражений, такие как regex101. Этот инструмент не только поможет вам в создании регулярных выражений, но и поможет вам изучить их.

Теперь вы понимаете основы RegEx, давайте обсудим, как использовать RegEx в вашем коде Python.

<час>

Регулярное выражение Python

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

23

Модуль определяет несколько функций и констант для работы с RegEx.

<час>

re.findall()

1951 метод возвращает список строк, содержащих все совпадения.

<час>

Пример 1:re.findall()

37

Если шаблон не найден, 1960 возвращает пустой список.

<час>

re.split()

1973 метод разбивает строку, в которой есть совпадение, и возвращает список строк, в которых произошло разбиение.

<час>

Пример 2:re.split()

45

Если шаблон не найден, 1983 возвращает список, содержащий исходную строку.

<час>

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

53

Кстати, значение по умолчанию для 2016 0; что означает все возможные разделения.

<час>

re.sub()

Синтаксис 2027 это:

66

Метод возвращает строку, в которой совпадающие вхождения заменены содержимым replace. переменная.

<час>

Пример 3:re.sub()

78

Если шаблон не найден, 2037 возвращает исходную строку.

<час>

Вы можете передать count в качестве четвертого параметра для 2049 метод. Если его опустить, результатом будет 0. Это заменит все вхождения.

85
<час>

re.subn()

2052 похож на 2062 за исключением того, что он возвращает кортеж из 2 элементов, содержащих новую строку и количество сделанных замен.

<час>

Пример 4:re.subn()

95
<час>

поиск()

2076 Метод принимает два аргумента:шаблон и строку. Метод ищет первое место, где шаблон RegEx создает совпадение со строкой.

Если поиск успешен, 2087 возвращает объект соответствия; если нет, возвращается 2098 .

102
<час>

Пример 5:re.search()

119

Здесь соответствует содержит объект соответствия.

<час>

Сопоставить объект

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

Вот некоторые из часто используемых методов и атрибутов объектов сопоставления:

<час>

match.group()

2103 метод возвращает часть строки, где есть совпадение.

Пример 6. Соответствие объекту

125

Здесь соответствует переменная содержит объект соответствия.

Наш шаблон 2119 имеет две подгруппы 2125 и 2138 . Вы можете получить часть строки этих подгрупп в скобках. Вот как:

139
<час>

match.start(), match.end() и match.span()

2144 Функция возвращает индекс начала совпадающей подстроки. Точно так же 2156 возвращает конечный индекс совпадающей подстроки.

141

2169 функция возвращает кортеж, содержащий начальный и конечный индексы совпадающей части.

154
<час>

match.re и match.string

2171 атрибут сопоставленного объекта возвращает объект регулярного выражения. Точно так же 2189 атрибут возвращает переданную строку.

161
<час>

Мы рассмотрели все часто используемые методы, определенные в 2195. модуль. Если вы хотите узнать больше, посетите модуль Python 3 re.

<час>

Использование префикса r перед RegEx

Когда r или R префикс используется перед регулярным выражением, это означает необработанную строку. Например, 2204 новая строка, тогда как 2214 означает два символа:обратную косую черту 2224 за которым следует 2235 .

Люфт 2242 используется для экранирования различных символов, включая все метасимволы. Однако, используя r префикс составляет 2250 относиться как к обычному персонажу.

<час>

Пример 7:Необработанная строка с префиксом r

174

Python

  1. Ключевые слова и идентификаторы Python
  2. Типы данных Python
  3. Операторы Python
  4. Аргументы функции Python
  5. Словарь Питона
  6. Итераторы Python
  7. Замыкания Python
  8. Дата и время Python
  9. Модуль времени Python
  10. Сон питона ()