#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]