Рассмотрим следующий код.Позиция подзаголовков
import re
text = "def oneFunc(x, y): return 0"
pattern = re.compile(
r"(?P<DEF_FUNC>def (?P<NAME_FUNC>\w+)\s*\((.*?)\):)|(?P<OTHERS>\w+)"
)
print('---', text, sep = "\n")
for m in pattern.finditer(text):
mdict = m.groupdict()
print('---', (m.start(), m.end()), sep = "\n")
for name, textfound in mdict.items():
if textfound != None:
print((name, textfound))
Это дает следующий выход.
---
def oneFunc(x, y): return 0
---
(0, 18)
('NAME_FUNC', 'oneFunc')
('DEF_FUNC', 'def oneFunc(x, y):')
---
(19, 25)
('OTHERS', 'return')
---
(26, 27)
('OTHERS', '0')
Можно спросить непосредственно re
позиции submatchings? Например, я хотел бы знать, что 'oneFunc'
начинается с 4 и заканчивается на 11, но у меня есть только позиции самого большого совпадения тока.
Спасибо! Извините за мой шумный вопрос. –