Пълната форма на регулярния израз е регулярен израз. Това е важна характеристика на всеки език за програмиране. Това е низов модел, който се използва за съпоставяне, търсене или замяна на низове в стойност на низ. Моделът на регулярен израз може да се използва в скрипта на Python, като се използва модулът „re“ на Python. Този модул има много видове функции за извършване на различни операции с низове. Използват се различни метасимволи и специални последователности за дефиниране на моделите на регулярни изрази за търсене или замяна на задачите. Целите на използването на някои често използвани метасимволи, специални последователности и методи на регулярен израз в скрипта на Python са показани в този урок.
Някои често използвани метазнаци в регулярен израз:
герои | Предназначение |
'+' | Използва се за съпоставяне на едно или повече появявания на определен знак в низ. |
'*' | Използва се за съвпадение на нула или повече срещания на определен знак в низ. |
'?' | Използва се за съвпадение на нула или едно срещане на определен знак в низ. |
'^' | Използва се за съпоставяне на конкретния знак или низ в началото на низа. |
'$' | Използва се за съпоставяне на конкретния знак или низ в края на низа. |
'|' | Използва се за съвпадение на всеки от множеството низове в низ. Работи като логиката ИЛИ. |
„[]“ | Използва се за съпоставяне на диапазон от знаци. |
„{}“ | Използва се за съпоставяне на определен брой знаци. |
Някои често използвани специални последователности в регулярен израз:
Последователности | Предназначение |
„\A“ | Използва се за съпоставяне на конкретния знак в началото на низа. Работи като знака „^“. |
„\b“, „\B“ | „\b“ се използва за съпоставяне на низа, който съдържа конкретния знак или дума в началото или края на низа. „\B“ работи обратно на „\b“. |
„\d“, „\D“ | „\d“ се използва за съпоставяне на десетичното число в низа, който е подобен на „[0-9]“. „\D“ работи обратно на „\d“. |
„\s“, „\S“ | „\s“ се използва за съпоставяне на интервала в низа, който е подобен на „[\n\t\r\v]“. „\S“ работи обратно на „\s“. |
‘\w’, ‘\W’ | „\w“ се използва за съпоставяне на буквите и цифрите в низа. „\W“ работи обратно на „\w“. |
„\С“ | Използва се за съпоставяне на конкретния знак в края на низа. Работи като знака '$'. |
Пример 1: Съвпадение на низа с помощта на функцията Match().
Функцията match() се използва за съпоставяне на модел на регулярен израз в началото на низа. Синтаксисът на тази функция е даден, както следва:
Синтаксис:
повторен мач ( модел, низ, знамена = 0 )
Тук първият аргумент се използва за дефиниране на модела на регулярен израз. Вторият аргумент се използва за дефиниране на главния низ. Третият аргумент не е задължителен и се използва за дефиниране на различни типове флагове.
Създайте файл на Python със следния скрипт, който съответства на модел на регулярен израз с дефиниран низ, като използвате функцията match(). Първо, дефиниран модел на регулярен израз се използва за съпоставяне. След това се взема дума за търсене от потребителя и се използва като модел на регулярен израз, за да съответства на стойността на низа. Ако се намери съвпадение, думата за търсене се отпечатва. В противен случай се отпечатва низът „Няма намерена съответстваща стойност“.
#Импортирайте необходимия модулвнос повторно
#Дефинирайте функцията за отпечатване на съответстващия резултат
def matchString ( ) :
#Проверете върнатата стойност на функцията match().
ако заедно с ! = Няма:
печат ( ''' + мат.група ( ) + '' се намира в '' + strValue + ''' )
друго:
печат ( „Няма намерена съответстваща стойност.“ )
#Дефинирайте стойността на низа
strValue = „Първи влязъл първи излязъл“.
#Сравнете низа въз основа на шаблона
мат = повторен мач ( „^Първо“ , strValue )
#Call функция за отпечатване на резултата от мача
matchString ( )
#Вземете низа за търсене
inValue = вход ( „Въведете стойността за търсене:“ )
мат = повторен мач ( inValue +, strValue )
#Call функция за отпечатване на резултата от мача
matchString ( )
Следният изход се появява за „първата“ входна стойност:
Пример 2: Намерете низа с помощта на функцията Findall().
Функцията findall() се използва за връщане на всички съвпадащи думи, които се намират в главния низ като кортеж.
Синтаксис:
re.findall ( модел, низ, знамена = 0 )
Тук първият аргумент се използва за дефиниране на модела на регулярен израз. Вторият аргумент се използва за дефиниране на главния низ. Третият аргумент не е задължителен и се използва за дефиниране на различни типове флагове.
Създайте файл на Python със следния скрипт, който взема стойност на основен низ и стойност на низ за търсене от потребителя. След това използвайте думата за търсене в модела на регулярен израз, за да намерите думата за търсене в основния низ. Броят на общите съвпадения се отпечатва в изхода.
#Импортирайте необходимия модулвнос повторно
#Вземете стойност на низ
inValue = вход ( „Въведете низ:“ )
#Вземете дума за търсене
srcValue = вход ( „Въведете дума за търсене:“ )
#Търсете думата в низа
srcResult = re.findall ( srcValue + '\In*' , inValue )
#Отпечатайте резултата от търсенето
печат ( 'Думата '' + srcValue + '' се намира в низа'
+ ул ( само ( srcResult ) ) + 'пъти.' )
Според изхода думата за търсене „яж“ се намира два пъти в основния низ „Ние ядем, за да живеем и не живеем, за да ядем“.
Пример 3: Търсете низа с помощта на функцията Search().
Search() е друга функция за търсене на конкретен модел в стойност на низ. Той съдържа същите аргументи като функциите match() и findall(). Създайте файл на Python със следния скрипт, който търси думата „Python“ в стойност на низ, която ще бъде взета от потребителя. Ако думата за търсене съществува във входната стойност, се отпечатва съобщение за успех. В противен случай се отпечатва съобщение за грешка.
#Импортиране на повторен модулвнос повторно
#Вземете стойност на низ
inValue = вход ( „Въведете низ:“ )
#Търсете конкретната дума в стойността на низа
srcResult = повторно търсене ( r „Python\w*“ , inValue )
#Проверете дали думата за търсене е намерена или не
ако srcРезултат:
печат ( ''' + srcResult.group ( ) + '' се намира в '' + inValue + ''' )
друго:
печат ( „Низът за търсене не е намерен.“ )
Изход:
Следният изход се появява, ако входният низ е „Харесва ми програмирането на Python“:
Следният изход се появява, ако входният низ е „Харесвам PHP програмиране“:
Пример 4: Заменете низа с помощта на функцията Sub().
Функцията sub() се използва за търсене на определен низ въз основа на модела и замяната му с друга дума. Синтаксисът на тази функция е даден, както следва:
Синтаксис:
ре.под ( шаблон, заместващ_низ, основен_низ )
Първият аргумент на тази функция съдържа модела, който се използва за търсене на конкретния низ в основния низ.
Вторият аргумент на тази функция съдържа стойността на низа „замяна“.
Третият аргумент на тази функция съдържа главния низ.
Тази функция връща заменения низ, ако има съвпадаща дума в основния низ въз основа на първия аргумент.
Създайте файл на Python със следния скрипт, който търси две цифри в края на низа. Ако низът съдържа две цифри в края, цифрите се заменят с низа „$50“.
#Импортиране на повторен модулвнос повторно
#Дефинирайте основния низ
strValue = 'Цената на книгата е 70'
#Дефинирайте модела за търсене
модел = „[0-9]{2}“
#Дефинирайте заместващата стойност
replaceValue = '$50'
#Търсете и заменете низа въз основа на шаблона
modified_strValue = re.sub ( шаблон, replaceValue, strValue )
#Отпечатайте оригиналните и модифицираните низови стойности
печат ( 'Оригинален низ: ' + strValue )
печат ( 'Модифициран низ: ' + modified_strValue )
Изход:
Имаше 70 в края на основния низ. И така, 70 се заменя с $50 в заменения низ.
Пример 5: Заменете низа с помощта на функцията Subn().
Функцията subn() работи като функцията sub(), с изключение на това, че връща изхода като кортеж, където първият индекс съдържа заменената стойност, а вторият индекс съдържа общия брой съвпадения.
Създайте файл на Python със следния скрипт, който търси азбуките от A до L в низа „LinuxHint.com“, като използва функцията subn():
#Импортиране на повторен модулвнос повторно
#Дефинирайте основния низ
strValue = 'LinuxHint.com'
#Дефинирайте модела за търсене
модел = '[КЪМ]'
#Дефинирайте заместващата стойност
replaceValue = '*'
#Търсете и заменете низа въз основа на шаблона
modified_strValue = re.subn ( шаблон, replaceValue, strValue )
#Отпечатайте оригиналния низ и изхода на subn()
печат ( „Оригинален низ: \н ' + strValue )
печат ( 'Изход от функцията subn(): ' )
печат ( modified_strValue )
Изход:
Съгласно следния изход, символите „L“ и „H“ се заменят със знака „*“.
Пример 6: Разделете низа с помощта на функцията Split().
Създайте файл на Python със следния скрипт, който използва функцията split(), за да раздели основния низ на множество части въз основа на модела на регулярен израз:
#Импортиране на повторен модулвнос повторно
#Дефинирайте стойност на низ
strVal= 'Rupa Akter;Nira Chowdhury;Mazharul Islam'
#Дефинирайте модела, който ще се използва за разделяне на данните
модел = '[^A-Za-z ]'
#Съхранявайте разделените стойности в списък
split_result = re.split ( модел, strVal )
печат ( „Изход от функцията split():“ )
печат ( разделен_резултат )
Изход:
Според изхода основният низ е разделен на три части въз основа на модела „[^A-Za-z]“, който се използва в скрипта.
Заключение
Предназначението на най-често използваните метасимволи, диапазони и вградените функции на Python за търсене, заместване и разделяне на низовете са показани в този урок с помощта на прости скриптове на Python.