Полная форма регулярного выражения — регулярное выражение. Это важная особенность любого языка программирования. Это строковый шаблон, который используется для сопоставления, поиска или замены строк в строковом значении. Шаблон регулярного выражения можно использовать в скрипте Python с помощью модуля Python «re». Этот модуль имеет множество типов функций для выполнения различных операций со строками. Различные метасимволы и специальные последовательности используются для определения шаблонов регулярных выражений для поиска или замены задач. В этом руководстве показаны цели использования некоторых часто используемых метасимволов, специальных последовательностей и методов регулярных выражений в скрипте Python.
Некоторые часто используемые метасимволы в регулярном выражении:
Персонажи | Цель |
'+' | Он используется для сопоставления одного или нескольких вхождений определенного символа в строку. |
'*' | Он используется для сопоставления нуля или более вхождений определенного символа в строку. |
'?' | Он используется для сопоставления нуля или одного вхождения определенного символа в строке. |
'^' | Он используется для сопоставления определенного символа или строки в начале строки. |
'$' | Он используется для сопоставления определенного символа или строки в конце строки. |
'|' | Он используется для сопоставления любой из нескольких строк в строке. Это работает как логика ИЛИ. |
'[]' | Он используется для сопоставления диапазона символов. |
'{}' | Он используется для сопоставления определенного количества символов. |
Некоторые часто используемые специальные последовательности в регулярных выражениях:
Последовательности | Цель |
'\А' | Он используется для сопоставления определенного символа в начале строки. Он работает как символ «^». |
‘\b’, ‘\B’ | «\b» используется для сопоставления строки, содержащей определенный символ или слово в начале или конце строки. «\B» работает противоположно «\b». |
‘\d’, ‘\D’ | «\d» используется для сопоставления десятичного числа в строке, аналогичной «[0-9]». «\D» работает противоположно «\d». |
'\SS' | «\s» используется для сопоставления пробелов в строке, аналогичной «[\n\t\r\v]». «\S» работает противоположно «\s». |
'\w', '\W' | «\w» используется для сопоставления буквенных и цифровых символов в строке. «\W» работает противоположно «\w». |
'\С' | Он используется для сопоставления определенного символа в конце строки. Он работает как символ «$». |
Пример 1. Сопоставление строки с помощью функции Match()
Функция match() используется для сопоставления шаблона регулярного выражения в начале строки. Синтаксис этой функции следующий:
Синтаксис:
повторный матч ( узор, флаги '=' 0 )
Здесь первый аргумент используется для определения шаблона регулярного выражения. Второй аргумент используется для определения основной строки. Третий аргумент является необязательным и используется для определения различных типов флагов.
Создайте файл Python с помощью следующего сценария, который сопоставляет шаблон регулярного выражения с определенной строкой, используя функцию match(). Во-первых, для сопоставления используется определенный шаблон регулярного выражения. Затем у пользователя берется искомое слово и используется как шаблон регулярного выражения для сопоставления со строковым значением. Если какое-либо совпадение найдено, искомое слово печатается. В противном случае печатается строка «Соответствующее значение не найдено».
#Импортируем необходимый модульимпортировать повторно
#Определяем функцию для печати результата сопоставления
защита matchString ( ) :
#Проверяем возвращаемое значение функции match()
если вместе с ! = Нет:
Распечатать ( ''' + мат.группа ( ) + '' находится в '' + стрЗначение + ''' )
еще:
Распечатать ( «Соответствующее значение не найдено». )
#Определяем строковое значение
стрЗначение = 'Первым прибыл, первым обслужен.'
#Сопоставляем строку по шаблону
мат = повторное совпадение ( '^Первый' , стрЗначение )
#Вызов функции для печати результата совпадения
строка совпадения ( )
#Возьмем строку поиска
inValue = ввод ( 'Введите искомое значение: ' )
мат = повторное совпадение ( inValue +, стрValue )
#Вызов функции для печати результата совпадения
строка совпадения ( )
Для «первого» входного значения появляется следующий вывод:
Пример 2. Найдите строку с помощью функции Findall()
Функция findall() используется для возврата всех совпадающих слов, найденных в основной строке, в виде кортежа.
Синтаксис:
ре.финдалл ( узор, флаги '=' 0 )
Здесь первый аргумент используется для определения шаблона регулярного выражения. Второй аргумент используется для определения основной строки. Третий аргумент является необязательным и используется для определения различных типов флагов.
Создайте файл Python с помощью следующего сценария, который принимает от пользователя значение основной строки и значение строки поиска. Затем используйте искомое слово в шаблоне регулярного выражения, чтобы найти искомое слово в основной строке. В выводе выводится общее количество совпадений.
#Импортируем необходимый модульимпортировать повторно
#Принимаем строковое значение
inValue = ввод ( 'Введите строку: ' )
#Возьмите искомое слово
исходное значение = ввод ( 'Введите искомое слово: ' )
#Ищем слово в строке
srcResult = re.findall ( исходное значение + '\В*' , в цене )
#Распечатываем результат поиска
Распечатать ( 'Слово '' + исходное значение + '' находится в строке '
+ ул ( только ( srcResult ) ) + «раз». )
Согласно выходным данным, поисковое слово «есть» встречается дважды в основной строке «Мы едим, чтобы жить, а не живем, чтобы есть».
Пример 3. Поиск строки с помощью функции Search()
search() — это еще одна функция для поиска определенного шаблона в строковом значении. Он содержит те же аргументы, что и функции match() и findall(). Создайте файл Python с помощью следующего сценария, который ищет слово «Python» в строковом значении, которое будет получено от пользователя. Если искомое слово существует во входном значении, выводится сообщение об успехе. В противном случае печатается сообщение об ошибке.
#Импортируем повторный модульимпортировать повторно
#Принимаем строковое значение
inValue = ввод ( 'Введите строку: ' )
#Ищем конкретное слово в строковом значении
srcResult = исследование.поиск ( р 'Питон\w*' , в цене )
#Проверяем, найдено ли искомое слово или нет
если источникРезультат:
Распечатать ( ''' + источникResult.group ( ) + '' находится в '' + inValue + ''' )
еще:
Распечатать ( «Строка поиска не найдена». )
Выход:
Если введена строка «Мне нравится программирование на Python», появится следующий вывод:
Если введена строка «Мне нравится программирование на PHP», появится следующий вывод:
Пример 4. Замена строки с помощью функции Sub()
Функция sub() используется для поиска определенной строки по шаблону и замены ее другим словом. Синтаксис этой функции следующий:
Синтаксис:
re.sub ( шаблон, replace_string, main_string )
Первый аргумент этой функции содержит шаблон, который используется для поиска определенной строки в основной строке.
Второй аргумент этой функции содержит строковое значение «замены».
Третий аргумент этой функции содержит основную строку.
Эта функция возвращает замененную строку, если в основной строке существует какое-либо подходящее слово на основе первого аргумента.
Создайте файл Python с помощью следующего сценария, который ищет две цифры в конце строки. Если строка содержит две цифры в конце, эти цифры заменяются строкой «$50».
#Импортируем повторный модульимпортировать повторно
#Определяем основную строку
стрЗначение = «Цена книги 70»
#Определяем шаблон поиска
шаблон = '[0-9]{2}'
#Определяем значение замены
заменитьЗначение = «50 долларов»
#Ищем и заменяем строку по шаблону
модифицированное_strValue = re.sub ( шаблон, replaceValue, strValue )
#Распечатываем исходные и измененные строковые значения
Распечатать ( 'Исходная строка: ' + стрвалуе )
Распечатать ( 'Измененная строка: ' + модифицированное_strValue )
Выход:
В конце основной цепочки их было 70. Таким образом, в замененной строке число 70 заменяется на $50.
Пример 5. Замена строки с помощью функции Subn()
Функция subn() работает аналогично функции sub(), за исключением того, что она возвращает выходные данные в виде кортежа, где первый индекс содержит замененное значение, а второй индекс содержит общее количество совпадений.
Создайте файл Python со следующим скриптом, который ищет алфавиты от A до L в строке «LinuxHint.com», используя функцию subn():
#Импортируем повторный модульимпортировать повторно
#Определяем основную строку
стрЗначение = 'LinuxHint.com'
#Определяем шаблон поиска
шаблон = '[К]'
#Определяем значение замены
заменитьЗначение = '*'
#Ищем и заменяем строку по шаблону
модифицированное_strValue = re.subn ( шаблон, replaceValue, strValue )
#Распечатываем исходную строку и вывод subn()
Распечатать ( «Исходная строка: \п ' + стрвалуе )
Распечатать ( 'Вывод функции subn(): ' )
Распечатать ( модифицированное_strValue )
Выход:
Согласно следующему выводу, символы «L» и «H» заменяются символом «*».
Пример 6. Разделение строки с помощью функции Split()
Создайте файл Python с помощью следующего сценария, который использовал функцию Split() для разделения основной строки на несколько частей на основе шаблона регулярного выражения:
#Импортируем повторный модульимпортировать повторно
#Определяем строковое значение
стрVal= «Рупа Актер;Нира Чоудхури;Мажарул Ислам»
#Определяем шаблон, который будет использоваться для разделения данных
шаблон = '[^А-За-з ]'
#Сохраняем разделенные значения в списке
Split_result = re.split ( шаблон, стрВал )
Распечатать ( «Вывод функции Split():» )
Распечатать ( Split_result )
Выход:
Согласно выводу, основная строка делится на три части на основе шаблона «[^A-Za-z]», который используется в скрипте.
Заключение
Назначение наиболее часто используемых метасимволов, диапазонов и встроенных функций Python для поиска, замены и разделения строк показано в этом руководстве с использованием простых сценариев Python.