Найдите позицию определенного строкового формата в длинной строке

#python

Вопрос:

Я хочу найти позицию определенного строкового формата в длинной строке. Например:

 k='df(3)srer(2)q3r32341v(144)df'
 

Я хочу найти положение строки » (число)», в данном случае положение (3) и (2)

Я надеюсь, что обратный результат будет

 [2,9]
 

Я хотел использовать

 a=[]
a.append(k.find('(d)'))
 

Но это не сработало; пожалуйста, помогите мне!
Спасибо!

Комментарии:

1. Вы должны использовать функции из re библиотеки для выполнения поиска по регулярным выражениям. re.finditer() .

Ответ №1:

 >>> [f.start() for f in re.finditer('(d)', 'df(3)srer(2)q3r32341v(144)df')]
[2, 9]
 

Обратите внимание, что вам нужно избежать круглых скобок (например (d) , если вам нужен литерал (number) , потому что круглые скобки-это специальный символ в регулярном выражении

Если вы хотите включить числа любого размера в скобки, то используйте d , которые (144) также будут включать позицию

 >>> [f.start() for f in re.finditer('(d )', 'df(3)srer(2)q3r32341v(144)df')]
[2, 9, 21]