У меня есть куча html-файлов, которые я объединяю и хочу получить только фактическое содержимое.
Однако у меня возникли проблемы с поиском правильного регулярного выражения для этого. В основном я пытаюсь удалить все до, между и после определенных границ. Это немного похоже на Регулярное выражение, чтобы соответствовать строке, которая не содержит слова? однако, поскольку я чувствую себя более сложным. Мне не повезло.
Источник-данные:
Stuff I dont need before
<div id="start">
blablabla11
blablabla12
<div id="end">
Stuff I dont need in the middle1
<div id="start">
blablabla21
blablabla22
<div id="end">
Stuff I dont need in the middle2
<div id="start">
blablabla31
blablabla32
<div id="end">
Stuff I dont need in the end
Желаемый результат:
<div id="start">
blablabla11
blablabla12
<div id="end">
<div id="start">
blablabla21
blablabla22
<div id="end">
<div id="start">
blablabla31
blablabla32
<div id="end">
Контекст:
Я работаю в Sublime (Mac) -> Perl Regex
Мой нынешний подход основан на обратном сопоставлении / регулярных выражениях (я знаю, что существует много дискуссий о формулировке / методах / уродстве и т. Д. По этой теме, однако мне не важно, как мне нужно, чтобы работа была выполнена):
Find: (?s)^((?!(<div id="start">)(?s)(.*?)(<div id="end">)).)*$
Replace: $3
И еще много вариантов, я тестировал и играл.
Тем не менее, он дает:
blablabla11
blablabla12
<div id="start">
blablabla21
blablabla22
<div id="start">
blablabla31
blablabla32
<div id="start">
Хорошо, но пока нет. И что бы я ни пытался, я сталкиваюсь с другими проблемами. Думаю, нуб на работе.
Спасибо, gazillion за вашу помощь, ребята!
Chris
EDIT:
Спасибо за первые ответы! Однако я должен признать, что мой минимальный пример немного вводит в заблуждение (потому что это слишком просто). В действительности я сталкиваюсь с сотнями сложных и разнообразных html-файлов, объединенных в один большой файл.
Единственными общими битами являются то, что содержимое каждого html-файла начинается с известной строки (здесь упрощенно) и заканчивается известной строкой (здесь упрощенно как). И контент как таковой, очевидно, имеет множество различных тегов и т. Д. Так что, к сожалению, просто тестирование на открытие и закрытие тегов не обрежет его