Рубрики
Без рубрики

Python Regex синтаксис [2 минуты грунтовки]

Регулярное выражение – это десятилетие – старая концепция в информатике. Придуманы в 1950-х годах знаменитым математиком Стивеном Коуном Клееем, десятилетия эволюции принесли огромное разнообразие операций. Сбор всех операций и записать всеобъемлющий список приведет к самой толстую и нечитаемой книге самостоятельно. https://youtu.be/g1jlupc-bvy Связанная статья: Python Regex … Python Regex Syntax [2 минуты Primer] Подробнее »

Автор оригинала: Chris.

Регулярное выражение – это десятилетие – старая концепция в информатике. Придуманы в 1950-х годах знаменитым математиком Стивеном Коуном Клееем, десятилетия эволюции принесли огромное разнообразие операций. Сбор всех операций и записать всеобъемлющий список приведет к самой толстую и нечитаемой книге самостоятельно.

Связанная статья: Python Regex SuperPower – Ultimate Guide

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

Вот самые важные операторы Regex:

  • Отказ Wild-Card Оператор («точка») соответствует любому символу в строке, кроме новой символа «\ N». Например, Regex ‘…’ соответствует всем словам с тремя символами, такими как «abc», «Cat» и «собака».
  • * ноль или-другое Оператор Asterisk соответствует произвольному количеству вхождений (включая нулевые вхождения) непосредственно предшествующего Regex. Например, Regex ‘Cat *’ соответствует строкам «CA», «CAT», «CATT», «CATTT» и «CATTTTTTT».
  • ? нулевой или один Операторные матчи (как следует наименование) либо ноль, либо одно вхождению непосредственно предшествующего Regex. Например, кот Regex? Соответствует обеим струнам «Ca» и «CAT» – но не «CATT», «CATTT» и «CATTTTTTT».
  • + по крайней мере один Оператор соответствует одному или нескольким вхождению непосредственно предшествующего Regex. Например, «CAT +» REGEX не соответствует строке «CA», а соответствует всем строкам, по меньшей мере, одним трейлинговым символом «T», таких как «кошка», «CATT» и «CATTT».
  • ^ Начальная строка Оператор соответствует началу строки. Например, Regex ‘^ p’ будет соответствовать строкам «Python» и «программирование», но не «Lisp» и «шпионить», где символ «p» не происходит в начале строки.
  • $ конец строки Оператор соответствует концу строки. Например, Regex ‘Py $’ будет соответствовать строкам «Main.py» и «Pypy», но не строки «Python» и «pypi».
  • A | B Или Оператор соответствует либо Regex A или Regeex B. Обратите внимание, что интуиция сильно отличается от стандартной интерпретации или оператора, который также может удовлетворить оба условия. Например, Regex ‘(Hello) | (HI) «Соответствует строки« Hello World »и« Привет Python ». Было бы не иметь смысла попытаться сопоставить их обоих одновременно.
  • AB И Оператор совпадает с первым Regex A и вторым Regeex B, в этой последовательности. Мы уже видели его тривиально в Regex ‘Ca’, которое соответствует первым Regex ‘C’ и Second Regex ‘A’.

Обратите внимание, что я дал вышеупомянутые операторы некоторых более значимых имен (жирным шрифтом), чтобы вы могли немедленно понять цель каждого Regex. Например, оператор «^» обычно обозначается как оператор «Caret». Эти имена не описаны, поэтому я придумал более детские самые слов, такие как оператор «Start of String».

Вы хотите освоить сверхдержаву Regeex? Проверьте мою новую книгу Самый умный способ изучать регулярные выражения в Python С инновационным 3-ступенчатым подходом для активного обучения: (1) Изучение книги главы, (2) Решите головоломки кода и (3) Смотреть воспроизведение главы видео.

Давайте погрузимся в некоторые примеры!

Примеры

import re

text = '''
    Ha! let me see her: out, alas! he's cold:
    Her blood is settled, and her joints are stiff;
    Life and these lips have long been separated:
    Death lies on her like an untimely frost
    Upon the sweetest flower of all the field.
'''

print(re.findall('.a!', text))
'''
Finds all occurrences of an arbitrary character that is
followed by the character sequence 'a!'.
['Ha!']
'''

print(re.findall('is.*and', text))
'''
Finds all occurrences of the word 'is',
followed by an arbitrary number of characters
and the word 'and'.
['is settled, and']
'''

print(re.findall('her:?', text))
'''
Finds all occurrences of the word 'her',
followed by zero or one occurrences of the colon ':'.
['her:', 'her', 'her']
'''

print(re.findall('her:+', text))
'''
Finds all occurrences of the word 'her',
followed by one or more occurrences of the colon ':'.
['her:']
'''


print(re.findall('^Ha.*', text))
'''
Finds all occurrences where the string starts with
the character sequence 'Ha', followed by an arbitrary
number of characters except for the new-line character. 
Can you figure out why Python doesn't find any?
[]
'''

print(re.findall('\n$', text))
'''
Finds all occurrences where the new-line character '\n'
occurs at the end of the string.
['\n']
'''

print(re.findall('(Life|Death)', text))
'''
Finds all occurrences of either the word 'Life' or the
word 'Death'.
['Life', 'Death']
'''

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

Куда пойти отсюда?

Если вы хотите овладеть регулярными выражениями раз и навсегда, я бы порекомендовал, чтобы вы прочитали массивное учебное пособие на регулярное выражение на блоге Finxter – бесплатно!

Python Regex Superpower [Full Tutorial]

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.