Инструменты пользователя

Инструменты сайта


python:reguljarnye_vyrazhenija:primery

Примеры

Сочетаемость

Несколько регулярных выражений можно склеивать между собой, чтобы сформировать новые выражения. Например, если A и B являются регулярными выражениями, тогда AB тоже является регулярным выражением.

В общем случае, если строка p подпадает под шаблон A, а другая строка q подпадает под шаблон B, то строка pq подпадёт под AB. Исключение составляют случаи, когда : 1. A или B содержат условия; 2. в A или B используются пограничные описатели (\b); 3. A и/или B содержат нумерованные группы.

findall

import re
 
s = '''Это просто строка текста.
А это ещё одна строка текста.
А это строка с цифрами: 1, 2, 3, 4, 5, 6, 7, 8, 9, ٣, 0, 10
А это строка с разными символами: "!", "@", "-", "&", "?", "_"
a\\b\tc
test string'''
 
pattern = r'\w+'
print(re.findall(pattern, s))
 
pattern = r'[а-яё]+'
print(re.findall(pattern, s, flags=re.IGNORECASE))
 
pattern = r'[0-9]+'
print(re.findall(pattern, s))
 
pattern = r'\d+'
print(re.findall(pattern, s))
 
pattern = r'[\da-]+'
print(re.findall(pattern, s))
 
pattern = r'a\\b\tc'
print(re.findall(pattern, s))
 
pattern = r'\w+$'
print(re.findall(pattern, s, flags=re.IGNORECASE))
import re
 
s = 'Это просто строка текста. А это ещё одна строка текста.'
pattern = 'строка'
 
match = re.search(pattern, s)
print(match) # <re.Match object; span=(11, 17), match='строка'>
print(match.span()) # (11, 17)
print(match.start()) # 11
print(match.end()) # 17
 
if re.search(pattern, s):
  print('Matched')
else:
  print('No match')

match, пример валидации email

import re
 
def validate_email(email):
    return bool(re.match(r'^\w+@(\w+\.){0,2}[a-z]{2,6}$', email, re.IGNORECASE))
 
print(validate_email('mail@mail.com'))
print(validate_email('ivanov@bank'))
print(validate_email('mail@google.com.ua'))
print(validate_email('mail@google.com.infotest'))

split

s = 'Это просто строка текста. А это ещё одна строка текста.'
pattern = 'строка'
 
print(re.split(r'\.', s, 1)) #['Это просто строка текста', ' А это ещё одна строка текста.']

compile

   # Компилируем выражение для последующего использования.
    # Совместим два флага re.X  и re.DEBUG
    re_test = re.compile(r'''
        (\d{4})\s # год
        кот # просто кот
    ''', re.X | re.DEBUG)
 
    # Строка '2018 кот' соответствует выражению.
    # Получим содержимое первой группы (год).
    re_test.match('2018 кот').group(1)  # 2018
 
    # Строка '2018 год' не соответствует выражению.
    re_test.match('2018 год')  # None
python/reguljarnye_vyrazhenija/primery.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)