Как я могу использовать регулярные выражения, чтобы найти и заменить весь текст в строках, оставив строку и пробел между двумя разделителями нетронутыми? - PullRequest
2 голосов
/ 04 февраля 2020

Я не так хорош с Regex ...

У меня есть тысячи строк в XML do c, которые похожи на это (пробелы являются преднамеренными, как они есть в XML ):

<col id="7" type="TEXT"> Speaker</col>
<col id="7" type="TEXT"> Monitor</col>
<col id="7" type="TEXT"> TV</col>
<col id="7" type="TEXT"> Amp</col>

и хочу сделать в основном обратное этому: [^>] + (?! [^ <] *>)

Я хочу сделать замену, которая оставляет все, что находится между первым ">" и вторым "<", не повреждено. </p>

И оберните эту строку (и пробел), чтобы получилось, например:

<outline text=" Speaker"></outline>
<outline text=" Monitor"></outline>

и так далее.

Возможно ли это вообще?

1 Ответ

0 голосов
/ 04 февраля 2020

В Atom вы можете просто найти <[^>]*>([^<]*)<[^>]*> и заменить на <outline text="$1"></outline>.

См. Демо regex .

Подробно

  • <[^>]*> - <, 0 или более символов, отличных от >, а затем >
  • ([^<]*) - Захват группа 1: любые 0 или более символов, отличных от >, а затем >
  • <[^>]*> - <, 0 или более символов, отличных от >, а затем >

$1 в шаблоне замены является обратной ссылкой на значение, сохраненное в группе 1.

...