Python Regex Урок с пример

Блог

Python Regex Урок с пример

Какво е регулярен израз?

Регулярният израз в език за програмиране е специален текстов низ, използван за описание на модел за търсене. Той е изключително полезен за извличане на информация от текст като код, файлове, дневник, електронни таблици или дори документи.

Докато използваме регулярния израз, първото нещо, което трябва да разпознаем, е, че всичко по същество е символ и ние пишем модели, които да съответстват на определена последователност от знаци, наричани още низ. Ascii или латинските букви са тези, които са на клавиатурите ви, а Unicode се използва за съвпадение на чуждия текст. Той включва цифри и пунктуация и всички специални знаци като $#@!%И т.н.

В този урок ще научим:

  • Синтаксис на регулярен израз
  • Пример за w+ и ^ израз
  • Пример за s израз във функция re.split
  • Използване на методи за редовни изрази
  • Използване на re.match ()
  • Намиране на модел в текст (re.search ())
  • Използване на re.findall за текст
  • Python флагове
  • Пример за флагове re.M или Multiline

Например, регулярен израз може да каже на програма да търси конкретен текст от низ и след това да отпечата резултата съответно. Изразът може да включва

  • Съвпадение на текст
  • Повторение
  • Разклоняване
  • Шаблон-композиция и др.

В Python регулярен израз се обозначава като RE (REs, regexes или regex pattern) се импортират чрез повторен модул . Python поддържа регулярен израз чрез библиотеки. В Python редовният израз поддържа различни неща като Модификатори, идентификатори и знаци с интервали .

Синтаксис на регулярен израз

RE

избутване на проект на Android Studio към github
import re
  • Re модулът, включен в Python, се използва главно за търсене и манипулиране на низ
  • Използва се също често за изстъргване на уеб страници (извличане на голямо количество данни от уебсайтове)

Ще започнем урока за изрази с това просто упражнение, като използваме изразите (w+) и (^).

Пример за w+ и ^ израз

  • ^: Този израз съвпада с началото на низ
  • 'w + ': Този израз съвпада с буквено -цифровия знак в низа

Тук ще видим пример за това как можем да използваме w+ и ^ израз в нашия код. Ние обхващаме функцията re.findall по -късно в този урок, но за известно време просто се фокусираме върху израза w+ и ^.

Например, за нашия низов guru99, образованието е забавно, ако изпълним кода с w+ и^, той ще даде изходния guru99.

Python Regex Урок: re.match (), re.search (), re.findall (), Флагове

import re xx = 'guru99,education is fun' r1 = re.findall(r'^w+',xx) print(r1)

Не забравяйте, че ако премахнете знак +от w +, изходът ще се промени и той ще даде само първия знак на първата буква, т.е. [g]

Пример за s израз във функция re.split

  • s: Този израз се използва за създаване на интервал в низа

За да разберем как работи този регулярен израз в Python, започваме с прост пример за разделена функция. В примера разделихме всяка дума с помощта на функцията re.split и в същото време използваме израз s, който позволява да се анализира всяка дума в низа поотделно.

Python Regex Урок: re.match (), re.search (), re.findall (), Флагове

Когато изпълните този код, той ще ви даде резултата [„ние“, „ние“, „разделяне“, „the“, „думи“].

Сега, нека видим какво ще стане, ако премахнете от s. В изхода няма азбука „s“, това е така, защото сме премахнали „“ от низа и той оценява s като обикновен символ и по този начин разделя думите, където намери s в низа.

Python Regex Урок: re.match (), re.search (), re.findall (), Флагове

По същия начин има редица други регулярни изрази в Python, които можете да използвате по различни начини в Python като d, D, $,., B и т.н.

парично приложение директен депозит безработица неуспешно

Ето пълния код

import re xx = 'guru99,education is fun' r1 = re.findall(r'^w+', xx) print((re.split(r's','we are splitting the words'))) print((re.split(r's','split the words')))

След това ще видим видовете методи, които се използват с регулярни изрази.

Използване на методи за редовни изрази

Пакетът re предоставя няколко метода за действително изпълнение на заявки във входен низ. Методът, който ще видим, е

  • re.match ()
  • re.search ()
  • re.findall ()

Забележка : Въз основа на регулярните изрази, Python предлага две различни примитивни операции. Методът на съвпадение проверява за съвпадение само в началото на низа, докато търсенето проверява за съвпадение навсякъде в низа.

Използване на re.match ()

Функцията за съвпадение се използва за съпоставяне на RE модела с низ с опционални флагове. В този метод изразите w+ и W ще съвпадат с думите, започващи с буква „g“ и след това, всичко, което не започва с „g“, не се идентифицира. За да проверим съвпадението за всеки елемент в списъка или низ, стартираме forloop.

Python Regex Урок: re.match (), re.search (), re.findall (), Флагове

Намиране на модел в текст (re.search ())

Регулярният израз обикновено се използва за търсене на модел в текст. Този метод взема модел на редовен израз и низ и търси този модел с низ.

За да използвате функцията search (), първо трябва да импортирате re и след това да изпълните кода. Функцията search () взема шаблона и текста за сканиране от нашия основен низ и връща обект на съвпадение, когато моделът е намерен или не съвпада, ако моделът не е намерен.

Python Regex Урок: re.match (), re.search (), re.findall (), Флагове

Например тук търсим два литерални низа Софтуерно тестване guru99, в текстов низ Софтуерното тестване е забавно. За софтуерно тестване открихме съвпадението, следователно той връща резултата, както е намерил съвпадение, докато за дума guru99 не можахме да намерим в низ, следователно връща резултата като Няма съвпадение.

re.findall ()

findall () модул се използва за търсене на всички събития, които съответстват на даден модел. Обратно, модулът search () ще върне само първото събитие, което съответства на посочения модел. findall () ще повтори всички редове на файла и ще върне всички не припокриващи се съвпадения на модел в една стъпка.

свободна форма/com/активиране

Например тук имаме списък с имейл адреси и искаме всички имейл адреси да бъдат извлечени от списъка, използваме метода re.findall. Той ще намери всички имейл адреси от списъка.

Python Regex Урок: re.match (), re.search (), re.findall (), Флагове

Ето пълния код

import re list = ['guru99 get', 'guru99 give', 'guru Selenium'] for element in list: z = re.match('(gw+)W(gw+)', element) if z: print((z.groups())) patterns = ['software testing', 'guru99'] text = 'software testing is fun?' for pattern in patterns: print('Looking for '%s' in '%s' ->' % (pattern, text), end=' ') if re.search(pattern, text): print('found a match!') else: print('no match') abc = 'guru99@google.com , careerguru99@hotmail.com, users@yahoomail.com' emails = re.findall(r'[w.-]+@[w.-]+', abc) for email in emails: print(email)

Python флагове

Много методи на Python Regex и функции на Regex приемат незадължителен аргумент, наречен Flags. Тези флагове могат да променят значението на дадения модел Regex. За да разберем това, ще видим един или два примера на тези флагове.

Различни флагове, използвани в Python, включват

Пример за флагове re.M или Multiline

При многоредове символът на шаблона [^] съвпада с първия знак на низ и началото на всеки ред (следващ веднага след всеки нов ред). Докато изразът малък w се използва за маркиране на пространството със знаци. Когато стартирате кода, първата променлива k1 отпечатва само символа „g“ за думата guru99, докато когато добавите многоредов флаг, той извлича първите знаци от всички елементи в низа.

Python Regex Урок: re.match (), re.search (), re.findall (), Флагове

Ето кода

import re xx = '''guru99 careerguru99 selenium''' k1 = re.findall(r'^w', xx) k2 = re.findall(r'^w', xx, re.MULTILINE) print(k1) print(k2)
  • Декларирахме променливата xx за низ 'guru99 .... кариераguru99 ... .selenium '
  • Изпълнете кода, без да използвате флагове многоредови, той дава изхода само „g“ от редовете
  • Изпълнете кода с многоредов флаг, когато отпечатате „k2“, той дава изхода като „g“, „c“ и „s“
  • И така, разликата, която можем да видим след и преди добавянето на многоредове в горния пример.

По същия начин можете да използвате и други флагове на Python, като re.U (Unicode), re.L (Follow locale), re.X (Allow Comment) и т.н.

Пример за Python 2

Горните кодове са примери за Python 3, Ако искате да стартирате в Python 2, моля, помислете за следния код.

# Example of w+ and ^ Expression import re xx = 'guru99,education is fun' r1 = re.findall(r'^w+',xx) print r1 # Example of s expression in re.split function import re xx = 'guru99,education is fun' r1 = re.findall(r'^w+', xx) print (re.split(r's','we are splitting the words')) print (re.split(r's','split the words')) # Using re.findall for text import re list = ['guru99 get', 'guru99 give', 'guru Selenium'] for element in list: z = re.match('(gw+)W(gw+)', element) if z: print(z.groups()) patterns = ['software testing', 'guru99'] text = 'software testing is fun?' for pattern in patterns: print 'Looking for '%s' in '%s' ->' % (pattern, text), if re.search(pattern, text): print 'found a match!' else: print 'no match' abc = 'guru99@google.com, careerguru99@hotmail.com, users@yahoomail.com' emails = re.findall(r'[w.-]+@[w.-]+', abc) for email in emails: print email # Example of re.M or Multiline Flags import re xx = '''guru99 careerguru99 selenium''' k1 = re.findall(r'^w', xx) k2 = re.findall(r'^w', xx, re.MULTILINE) print k1 print k2

Резюме

Регулярният израз в език за програмиране е специален текстов низ, използван за описание на модел за търсене. Той включва цифри и пунктуация и всички специални знаци като $#@!%И т.н. Изразът може да включва литерал

  • Съвпадение на текст
  • Повторение
  • Разклоняване
  • Шаблон-композиция и др.

В Python регулярен израз се обозначава като RE (REs, regexes или regex pattern) са вградени чрез re модул.

  • Re модулът, включен в Python, се използва главно за търсене и манипулиране на низ
  • Използва се също често за изстъргване на уеб страници (извличане на голямо количество данни от уебсайтове)
  • Методите за редовно изразяване включват re.match (), re.search () & re.findall ()
  • Python флагове Много методи на Python Regex и функции на Regex приемат незадължителен аргумент, наречен Flags
  • Тези флагове могат да променят значението на дадения модел Regex
  • Различни флагове на Python, използвани в методите на Regex, са re.M, re.I, re.S и т.н.

Python Tutorial: re Module - Как да пиша и сравнявам регулярни изрази (Regex)

В този урок за програмиране на Python ще се научим как да четем, пишем и съпоставяме регулярните изрази с модула re. Регулярните изрази са изключително полезни за съвпадение на общи текстови модели като имейл адреси, телефонни номера, URL адреси и т.н. Научаването как да правим това в Python ще ни позволи бързо да анализираме файлове и текст за информацията, от която се нуждаем.


Python RegEx | Урок за регулярни изрази на Python | Урок за Python | Обучение на Python

Този урок за EduEka Python RegEx (Блог с уроци по Python: https://goo.gl/wd28Zr ) ще ви помогне да разберете как да използвате регулярни изрази в Python. Ще научите различни операции и синтаксиси с регулярни изрази. Ще се научите как на практика да прилагате всички регулярни изрази в python.

По -долу са темите, обхванати в този урок:

  1. Защо използваме регулярни изрази?
  2. Какво представляват регулярните изрази?
  3. Основни операции с регулярни изрази
  4. Проверка на имейл с помощта на Регулярни изрази
  5. Проверка на телефонен номер с помощта на регулярни изрази
  6. Изстъргване на уеб с помощта на регулярни изрази

Урок за регулярни изрази (Regex): Как да съпоставим всеки модел на текст

приложения за намиране на почистващи средства за дома

В този урок за регулярни изрази (regex) ще се научим как да съчетаваме шаблони на текст. Регулярните изрази са изключително полезни за съвпадение на общи текстови модели, като имейл адреси, телефонни номера, URL адреси и пр. Почти всеки език за програмиране има библиотека с регулярни изрази, така че изучаването на регулярни изрази не само ви помага при намирането на шаблони във вашите текстови редактори, но също така ще можете да използвате тези библиотеки за програмиране, за да търсите шаблони и програмно.


Регулярни изрази на Python (RegEx) | Регулярни изрази в Python | Урок за Python

Този урок за редовни изрази на Python ще ви помогне да разберете какви са регулярните изрази и символи за писане на регулярни изрази, заедно с демонстрация как да ги използвате. Регулярните изрази са набор от знаци, които помагат за един низ от самоличност на определен модел. Историята на регулярните изрази идва от редица други езици. Сега нека да започнем и да разберем как да използваме регулярните изрази заедно с демонстрация.

По -долу темите са обяснени в този урок за регулярни изрази на Python:

  1. Какво представляват регулярните изрази? (00:15)
  2. Символи за писане на регулярни изрази (01:41)
  • $: Указва, че съвпадението трябва да се случи в края на низа
  • []: Съпоставя един от всички знаци в скобите
  • [^…]: Съвпада с всеки символ, с изключение на тези, които не са в скобите
  • .: Представлява ss единична поява на всеки знак с изключение на нов ред
  • ?: Предходният знак не е задължителен
  • ^: Указва, че съвпадението трябва да започне в началото на низа

#python #regex #уеб-разработка