Python findall(), нахождение строки между двумя точками

Рейтинг: 0Ответов: 2Опубликовано: 26.01.2015

У меня есть строковая информация: AA÷ns8EohXe¬AD (это часть строки), мне нужено вытащить ns8EohXe. Я заметил зависимость в том, что нужная мне информация находиться между AA÷ и ¬AD.

Т. к. мне нужно получить array значений, использую findall().

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

Ответы

▲ 3Принят

Можно так

import re
comp = re.compile(r'AA÷(\S*?)¬AD')
comp.findall('AA÷ns8EohXe¬ADAA÷ng53he¬AD')
Out[14]: ['ns8EohXe', 'ng53he']

Если это просто строка, иначе

comp = re.compile(r'AA÷(.*?)¬AD')
▲ 1

Попробуйте так:

# -*- coding: utf-8 -*-
import re
s = u'dsfdsfds34523453AA÷ns8EohXe¬ADdfasdfaa sdfa dfas df a453AA÷ns8EohXe¬ADdfsd2341234123412453AA÷ns8EohXe¬ADdf 34fsdf'
print re.findall(u'AA÷(.+?)¬AD', s)