У меня возникают проблемы при попытке получить некоторые данные из круглых скобок. Вот некоторые примеры кода:Регулярные выражения Python внутри скобок
import re
test_string = '123a (456b)'
regex_a = re.match(r'(?P<a>\d+)a', test_string)
regex_b = re.match(r'(?P<b>\d+)b', test_string)
print regex_a
print regex_b
я ожидал бы два регулярных выражений объекты, чтобы вернуться с 123 и 456 соответственно, но regex_b
возвращает None
. Вот скрипка python, показывающая это (не): http://pythonfiddle.com/regex-in-parenthesis
Я также пробовал это в Pythex тоже (here's a link), но в этой среде он работает!
Я почесываю голову о том, что происходит, любая помощь, которую вы могли бы мне дать, была бы весьма признательна. Я использую python 2.6, если это имеет значение.
Попробуйте заменить '(' 'с \ (и') 'с' \) '. – dizballanze
'match' начинается в начале строки. Вместо этого используйте 'search'. См. [Документация] (https://docs.python.org/2/library/re.html) и десятки, если не сотни других вопросов на этом сайте. – BrenBarn
Полагаю, что это было в документации, но когда я использовал .match() в прошлом и не сталкивался с этим, мне небезразлично подвергать сомнению регулярное выражение, которое я написал, а не функцию, которую я использовал. Тем не менее, каждый день школьный день, и это не ошибка, я буду делать снова. – Sok