Как получить индекс оставшегося строкового индекса после регулярного выражения в Python? - PullRequest
0 голосов
/ 22 января 2020

Я уже получил совпавшую строку, используя регулярное выражение в python, как показано ниже.

import re
matches = re.finditer(r'<\S+?>',' Hi <a> This is </a> an example! ')
for match in matches:
    print(
        "matched string: '%s', start index: %s, end index: %s"
        % (match.group(0), match.span(0)[0], match.span(0)[1])
    )

результат:

matched string: '<a>', start index: 4, end index: 7
matched string: '</a>', start index: 16, end index: 20

теперь я хочу получить индекс оставшейся строки, что-то вроде:

[0,4],[7,16],[20,33]

1 Ответ

1 голос
/ 22 января 2020

Что-то вроде этого должно дать ожидаемый результат:

import re
str = ' Hi <a> This is </a> an example! '
matches = re.finditer(r'<\S+?>',str)
start = 0
output = []
for match in matches:
    output.append([start,match.start()])
    start = match.end()
output.append([start,len(str)])

print(output)

Выход:

[[0, 4], [7, 16], [20, 33]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...