2016-08-24 2 views
1

мне нужно заменить последний экземпляр этого:Как заменить последний экземпляр строки в нескольких файлах в Notepad ++

<segment-type>show</segment-type></segment> 

с этим:

<segment-type>show</segment-type></segment></play-list> 

в нескольких файлах. Это должен быть последний экземпляр, потому что эта конкретная строка отображается несколько раз в каждом документе, но я в основном пытаюсь закрыть XML-файл после последнего экземпляра, потому что случайно удалил тег закрытия во всех файлах ... и не может отменить ...

Я работаю, и это связано с работой, было бы безумно полезно, если бы кто-то помог мне понять это! Мне нужно какое-то выражение замены Regex, но я не знаю, Regex очень хорошо ...

+1

'<сегмент типа> показать (((s?) (?!)?!. (<Сегмент типа> показать)) *) \ z' -> '<сегмент-тип> показать $ 1' (не знаю почему' & # 47; 'показано, должно быть'/') –

+0

Вы только что сохранили мою задница, ты ангел <3 –

+0

Тогда я отправил ее в качестве ответа. –

ответ

1

Вы можете использовать

Найди то, что: (?s)<segment-type>show</segment-type></segment>(?!</play-list>)((?:(?!<segment-type>show</segment-type></segment>).)*)\z
Заменить: <segment-type>show</segment-type></segment></play-list>$1

совпадения моделей:

  • (?s) - включает режим DOTALL, так что . может соответствовать новым строке символов
  • <segment-type>show</segment-type></segment>(?!</play-list>) - в <segment-type>show</segment-type></segment> подстроке не следует с </play-list> строкой
  • ((?:(?!<segment-type>show</segment-type></segment>).)*) - Группа 1 ссылается на с $1 от замены подмаски соответствия любого символа, который не является началом <segment-type>show</segment-type></segment> последовательности, 0 или более вхождений
  • \z - конец файла.

enter image description here

0

Я уверен, что есть способы, вы можете сделать это с помощью регулярных выражений, но более простой ответ может быть таким:

1. Click somewhere in the first line of the file

2. Press ctrl + f

3. Type your </select> end tag in the 'Find What' box

Type Tag

4. Make sure 'Wrap around' is selected

Wrap Around

5. Select the 'Up' option under the 'Direction' options

Up Direction

6. Click on 'Find Next'

Find Next

Это будет ссылка на последнюю ссылку на тег </select> в текущем файле.Затем вы можете добавить то, что вам нужно.

+0

Похож на Wiktor Stribiżew избили меня с помощью более легкого решения, пока я печатал свой ответ. Хорошая работа Wiktor Stribiżew. –

+0

Ну, мое решение непросто, для потребителя легко просто копировать/вставлять шаблоны в 2 текстовых поля, но это не так просто понять. –

+0

На самом деле это была какая-то странная проблема, когда «y» в замененной «игре» на самом деле не являлся символом «y», это был чаркод 8000, что-то ... Мне пришлось сделать еще несколько find/replaces, чтобы окончательно исправить это так, что наш парсер мог прочитать XML, он продолжал говорить мне, что конечный тег не соответствует стартовому тегу: P Это вдохновило меня на то, чтобы действительно узнать, как долго выйдет из Regex, поэтому я могу сделать это сам! –

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