Несколько регулярных выражений можно склеивать между собой, чтобы сформировать новые выражения. Например, если A и B являются регулярными выражениями, тогда AB тоже является регулярным выражением.
В общем случае, если строка p подпадает под шаблон A, а другая строка q подпадает под шаблон B, то строка pq подпадёт под AB. Исключение составляют случаи, когда : 1. A или B содержат условия; 2. в A или B используются пограничные описатели (\b); 3. A и/или B содержат нумерованные группы.
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')
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'))
s = 'Это просто строка текста. А это ещё одна строка текста.' pattern = 'строка' print(re.split(r'\.', s, 1)) #['Это просто строка текста', ' А это ещё одна строка текста.']
# Компилируем выражение для последующего использования. # Совместим два флага 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