Python - Определение положения regex соответствует в строке?

Я в настоящее время использую регулярные выражения для поиска каналов RSS, чтобы найти, упоминаются ли определенные слова и фразы и затем хотели бы извлечь текст по обе стороны от соответствия также. Например:

String = "This is an example sentence, it is for demonstration only"
re.search("is", String)

Я хотел бы знать положение (положения) того, где соответствия, найдены так, чтобы я мог извлечь и произвести что-то вроде этого:

1 match found: "This is an example sentence"

Я знаю, что было бы легко сделать с разделениями, но я должен буду знать то, что индекс первого символа соответствия был в строке, которую я не знаю, как найти

43
задан Mehdi Nellen 21 February 2014 в 11:03
поделиться

2 ответа

Вы можете использовать .find ("is") , он вернет позицию "is" в строке

или используйте .start () из re

>>> re.search("is", String).start()
2

На самом деле его соответствие "равно" из "Th is "

Если вам нужно сопоставление по слову, вы должны использовать \ b перед а после «есть» \ b - граница слова.

>>> re.search(r"\bis\b", String).start()
5
>>>

для получения дополнительной информации о регулярных выражениях Python, документы здесь

63
ответ дан 26 November 2019 в 22:33
поделиться

Объекты re.Match имеют несколько методов , чтобы помочь вам в этом:

>>> m = re.search("is", String)
>>> m.span()
(2, 4)
>>> m.start()
2
>>> m.end()
4
21
ответ дан 26 November 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: