Строка из двух одинаковых букв,но шаблон задан с использованием групп 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Строка из двух одинаковых букв,но шаблон задан с использованием групп

Поиск

r"([a-cA-C])\1"

 

Строка из двух одинаковых букв,но шаблон задан с использованием групп

 

r"aa|bb".

 

Соответствует "aa" или "bb"

 

r"a(a|b)b"

 

Соответствует "aab" или "abb"

 

r"^(?:\d{8}|\d{4}):\s*(.*)$"

 

Соответствует строке,которая начинается с набора из восьми или четырех цифр и двоеточия.Все,что идет после двоеточия и после следующих за ним пробелов,выделяется в группу с номером1,тогда как набор цифр в группу не выделен.

 

r"(\w+)=.*\b\1\b"

 

Слова слева и справа от знака равенства присутствуют.Операнд "\1" соответствует группе с номером1,выделенной с помощью скобок.

 

r"(?P<var>\w+)=.*\b(?P=var)\b"

 

То же самое,но теперь используется именованная группа var.

 

r"\bregular(?=\s+expression)".

 

Соответствует слову "regular" только в том случае,если за ним после пробелов следует

 

"expression"

 

r"(?<=regular )expression"

 

Соответствует слову "expression",перед которым стоит "regular"и один пробел.

 

Следует заметить,что примеры со взглядом назад могут сильно влиять на производительность,поэтому их не стоит использовать без особой необходимости.

 

Отладка регулярных выражений

 

Следующий небольшой сценарий позволяет отлаживать регулярное выражение,при условии,что есть пример строки,которой шаблон должен удовлетворять.Взят кусочек логаiptables, его необходимо разобрать для получения полей. Интересны строки, в которых после kernel: стоит PAY:,а в этих строках нужно получить дату,значенияDST, LENиDPT:

 

import re

 

def debug_regex(regex, example):

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 58; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.)