Я думаю, что когда вы определяете String
, вы определяете объект. Поэтому вам нужно использовать .equals()
. Когда вы используете примитивные типы данных, вы используете ==
, но с String
(и любым объектом) вы должны использовать .equals()
.
Вместо этого используйте re.findall
или re.finditer
.
re.findall(pattern, string)
возвращает список соответствующих строк.
re.finditer(pattern, string)
возвращает итератор над объектами MatchObject
.
finditer
был тем, что я искал. Я удивлен, что один возвращает объекты Match и другие строки. Я ожидал использовать функциюmatch_all
илиmatch_iter
. – dsclose 7 December 2015 в 14:55re.search
в цикле. Он вернет объектMatch
. Вы хотите передатьMatch.start() + 1
в качестве аргументаpos
дляre.search
для следующей итерации цикла. – ArtOfWarfare 31 May 2017 в 17:31findall
вернет список совпадающих кортежей, а не список соответствующих строк. – rodorgas 12 June 2018 в 03:55