2016-09-15 4 views
0

Я ищу более быстрый способ найти & копировать все между двумя тегами (включая теги) во многие html-файлы, которые я обрабатываю. В настоящее время я использую возвышенное для копирования вручную в каждом файле. Тег html является постоянным (<center></center>). Я пробовал использовать регулярное выражение для достижения этого без успеха ex. "<center>(.*)</center>" ... Что бы я набрал в возвышенном виде, чтобы выполнить это? ИЛИ если есть лучший метод, который новичок может легко узнать, я открыт для предложений!Как найти и скопировать все между двумя тегами (включая теги)

</head> 

<body style="background-color:#9b9b9b;"> 
**<center> 
<table width="580" border="0" cellspacing="0" cellpadding="0" align="center" class ="responsive-table" style="background-color:#3e5b3e;border:solid thin #3e5b3e;" > 
    <tbody> 
    <tr> 
     <td background="http://app.randomsite.com/js/ckfinder/userfiles//images/banner.jpg" style="padding-top:20px;padding-right:20px;padding-left:20px;" class="hideForMobile"><h1 style="font-family:Arial, Helvetica, sans-serif;font-size:20px;font-weight:bold;text-align:right;color:#eee;vertical-align:bottom;text-decoration:none;margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;" >some message</h1></td> 
    </tr> 
    <tr> 
</center>** 
    <!---Start of Banner Image---> 
     <td><a href="{{Custom1}}" style="color:inherit;text-decoration:none;" ><img src="http://app.clientcommand.com/js/ckfinder/userfiles//images/top-dollar-ford-banner.jpg" alt="" class="table.responsiveImage" style="display:block;width:100%;border-style:none;" /></a></td> 
    <!---End of Banner Image---> 
    </tr> 
    <tr> 

Быть нежным - Я новичок в кодировании

+0

Если вы уверены, что не будут иметь вложенные ''

теги затем '
([\ s \ S] *?) <\/center>' достаточно. – revo

ответ

0

ваше регулярное выражение что-то я думаю, что нет. с .* получить у всех персонажей, но не перевода строки (перевод строки) попытаться Somthing как этот

<center>(.|\n)*<\/center>

пробое измененной части
. = все символы
| = или
\n = line-feed (newlines)
(.|\n)* = ноль или больше раз выше линии (жадные, так как манны раз как возможно
see demo

, если у вас больше секций в то время, и можно использовать разбивку измененной части <center>(.|\n)*?<\/center>


? сделает нежадным оно вернёт на первом наступлении </center>
see demo

+0

(. | \ N) * <\/center> Вы только что спасли мне жизнь - Спасибо! – echohotel

0

Не следует использовать регулярное выражение для разбора файла разметки.
Рассмотрите возможность использования Beautifulsoup для анализа файла html и извлечения внутреннего содержимого тега.

В вашем случае это должно быть что-то вроде: from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc, 'html.parser') for centered_content in soup.find_all('center'): ...(do what you want)...

 Смежные вопросы

  • Нет связанных вопросов^_^