Больше pythonic regex parse - PullRequest
       9

Больше pythonic regex parse

0 голосов
/ 22 октября 2011

Есть ли более питонический способ, чем делать:

 parsedStr=origStr[compiledRegex.match(origStr).start():compiledRegex.match(origStr).end())

Для примера предположим, что моя оригинальная строка «Кот сказал привет», а мое скомпилированное регулярное выражение - «. * Сказал», я бы потянул текст"Кот сказал"

Вышеприведенный код выглядит некрасиво, но вот как я это делал

Ответы [ 3 ]

1 голос
/ 22 октября 2011

Используйте метод group для объекта соответствия:

>>> import re
>>> origStr = "The cat said hi"
>>> compiledRegex = re.compile('The.*said')
>>> compiledRegex.match(origStr).group()
'The cat said'
0 голосов
/ 22 октября 2011

Вот как бы я это написал:

search = re.compile(r'^The.*said').search
match = search(input)
if match:
    match = match.group(0)

Если input - это «Кот сказал, что меня зовут», match будет «Кот сказал».

Если input это "Кот никогда не упоминал мое имя", match будет None.

Мне действительно нравится тот факт, что Python позволяет скомпилировать регулярное выражение и назначить определенный интересующий метод переменной в одну строку.

0 голосов
/ 22 октября 2011

Это у вас работает?

instancesFound = compiledRegex.findall(origStr)
if instancesFound:
    parsedStr = parsedParts[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...