Я в настоящее время использую регулярные выражения для поиска каналов RSS, чтобы найти, упоминаются ли определенные слова и фразы и затем хотели бы извлечь текст по обе стороны от соответствия также. Например:
String = "This is an example sentence, it is for demonstration only"
re.search("is", String)
Я хотел бы знать положение (положения) того, где соответствия, найдены так, чтобы я мог извлечь и произвести что-то вроде этого:
1 match found: "This is an example sentence"
Я знаю, что было бы легко сделать с разделениями, но я должен буду знать то, что индекс первого символа соответствия был в строке, которую я не знаю, как найти
Вы можете использовать .find ("is")
, он вернет позицию "is" в строке
или используйте .start () из re
>>> re.search("is", String).start()
2
На самом деле его соответствие "равно" из "Th is "
Если вам нужно сопоставление по слову, вы должны использовать \ b
перед а после «есть» \ b
- граница слова.
>>> re.search(r"\bis\b", String).start()
5
>>>
для получения дополнительной информации о регулярных выражениях Python, документы здесь
Объекты re.Match
имеют несколько методов , чтобы помочь вам в этом:
>>> m = re.search("is", String)
>>> m.span()
(2, 4)
>>> m.start()
2
>>> m.end()
4