BBEdit найти шаблон и удалить всю таблицу - PullRequest
1 голос
/ 18 апреля 2020

Я ни в коем случае не эксперт, и недавно получил BBEdit только для одноразового проекта.

Я работаю над файлом HTML, в котором есть много записей, которые я хотел бы удалить. Код, который я хочу удалить sh, - это все таблицы, в которых есть строка, НЕ конвертированная в них, без удаления всех других таблиц, которые имеют практически одинаковый шаблон таблицы, но другой текст или строки внутри таблицы.

<table border=0 width="100%">
<tr>
   <td class="out" valign=top nowrap  width=5%>30.12.2004
      22:34:03&nbsp;<font color=black><b>&gt;</b>TOM&nbsp;&nbsp;</font>
   </td>
   <td class="out"
      align=left>{{{NOT CONVERTED}}}</td>
</tr>
</table

<table border=0 width="100%"><tr><td class="timedel" valign=top nowrap
width=5%>30.12.2004 22:36:37&nbsp;<font
color=black><b>&lt;</b>Benjamin&nbsp;&nbsp;</font></td><td class="incom"  align=left>random string</td></tr></table>

<table border=0 width="100%"><tr><td class="incom" valign=top nowrap  width=5%>30.12.2004
22:36:47&nbsp;<font color=black><b>&lt;</b>Benjamin&nbsp;&nbsp;</font></td><td
class="incom"  align=left>{{{NOT CONVERTED}}}</td></tr></table>

<table border=0 width="100%"><tr><td class="timedel" valign=top nowrap
width=5%>30.12.2004 22:36:47&nbsp;<font
color=black><b>&lt;</b>Benjamin&nbsp;&nbsp;</font></td><td class="incom"  align=left>random chat text</td></tr></table>

<table border=0 width="100%"><tr><td class="incom" valign=top nowrap  width=5%>30.12.2004
22:36:50&nbsp;<font color=black><b>&lt;</b>Benjamin&nbsp;&nbsp;</font></td><td
class="incom"  align=left>{{{NOT CONVERTED}}}</td></tr></table>


У меня 3000 таких таблиц в моем файле html, и я sh могу найти и удалить эти таблицы. DATE, NAME и ">" - это переменные, которые различаются в каждой таблице, остальные всегда имеют один и тот же шаблон.

Как я могу использовать функцию grep в этом случае, чтобы идентифицировать этот шаблон и удалить его.

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Если вы просто хотите удалить всю таблицу (от открытия <table> до окончания </table>), , если , строка "{{{NOT CONVERTED}}}" появится в середине из этого, этот шаблон будет соответствовать всей таблице:

(?s)<table.+?>.+?{{{NOT CONVERTED}}}.+?</table>\n

((?s) в начале позволяет . совпадать при переносе строки.)

Использовать «Заменить все» msgstr ", заменяя ничем, удаляет все подходящие таблицы. Отмените ваш друг, если он не делает то, что вам нужно.

0 голосов
/ 21 апреля 2020

Еще раз спасибо Siegel за вашу помощь - я поиграл с вашим кодом, и это помогло:

<table.+?>{{{NOT CONVERTED}}}.+?</table> 

Это успешно идентифицировало таблицы, в которых строка не была преобразована в них.

Еще раз спасибо!

...