Вот несколько методов, которые можно использовать для поиска текста между двумя строками с помощью регулярных выражений в Python:
Метод 1: использование модуля re
Вы можете использовать модуль re
в Python для извлечения текста между двумя строками. В этом может помочь функция re.search()
в сочетании с шаблоном регулярного выражения. Вот пример:
import re
def extract_text_between_strings(text, start, end):
pattern = f"{re.escape(start)}(.*?){re.escape(end)}"
match = re.search(pattern, text)
if match:
return match.group(1)
else:
return None
text = "This is some text. [START]Text to extract[END] Some more text."
result = extract_text_between_strings(text, "[START]", "[END]")
print(result)
Выход:
Text to extract
Метод 2. Использование утверждений просмотра назад и вперед.
Другой подход заключается в использовании утверждений просмотра назад и вперед. Этот метод использует функцию re.findall()
для поиска всех совпадений между начальной и конечной строками. Вот пример:
import re
def extract_text_between_strings(text, start, end):
pattern = fr"(?<={re.escape(start)}).*?(?={re.escape(end)})"
matches = re.findall(pattern, text)
return matches
text = "This is some text. [START]Text to extract[END] Some more text. [START]Another text[END]"
result = extract_text_between_strings(text, "[START]", "[END]")
print(result)
Выход:
['Text to extract', 'Another text']
Метод 3: использование групп захвата
Вы также можете использовать группы захвата в регулярных выражениях для извлечения нужного текста между двумя строками. Вот пример:
import re
def extract_text_between_strings(text, start, end):
pattern = fr"{re.escape(start)}(.*?){re.escape(end)}"
matches = re.findall(pattern, text)
return matches
text = "This is some text. [START]Text to extract[END] Some more text. [START]Another text[END]"
result = extract_text_between_strings(text, "[START]", "[END]")
print(result)
Выход:
['Text to extract', 'Another text']