Home

Tags

regexp методы в python

2010-03-24 python regexp

Примеры использования основных методов regexp

findall

Найти все части текста удовлетворяющие паттерну
>>> s = 'This sample text=123 and test regexp=5, the end'
>>> re.findall(r'(\w+)=(\d+)',s)
[('text', '123'), ('regexp', '5')]

match

Проверка строки на соответствие паттерну, например нужно проверить корректность формата email
>>> s = 'user@example.com'
>>> g = re.match(r'[\w\d.\-]+@[\w\d.\-]+',s)
>>> g.group(0)
'user@example.com'

sub

Замена подстроки,
пример Подмена текста (функций) на регексах
>>> re.sub(r'\[(\d+)\]',r'+\1+','hello [123] world!')
'hello +123+ world!'

split

Разъединить строку подстрокой удовлетворяющий паттерну
>>> s = 'hello world, this regexp'
>>> re.split(r'\W+',s)
['hello', 'world', 'this', 'regexp']

можно задать максимальное кол-во разъединений maxsplit
>>> re.split(r'\W+',s,1)
['hello', 'world, this regexp']

если нужно получить и сами разъединительные подстроки, то нужно использовать группу
>>> re.split(r'(\W+)',s)
['hello', ' ', 'world', ', ', 'this', ' ', 'regexp']

finditer

Итератор при поиске текста, regexp finditer в python

compile

Компиляция паттерна для дальнейшего и многократного его использования
>>> c = re.compile(r'(\w+)=(\d+)')
>>> s = 'This sample text=123 and test regexp=5, the end'
>>> c.findall(s)
[('text', '123'), ('regexp', '5')]



Подобные заметки
Написание регексов (Regexp), примеры
Паттерны regexp
regexp finditer в python
Подмена текста (функций) на регексах
Разметка вики синтаксиса на регексах

comments powered by Disqus