Regex - Как удалить последний экземпляр найденного значения поиска?

У меня есть несколько файлов XML, из которых мне нужно удалить строку. Одна и та же строка существует в разных разделах файла, но мне нужно удалить только последний найденный экземпляр. Например -

  • (Открывающий тег здесь)Простое имя="DisplayValue" value="{?Consumer}" />
  • (Открывающий тег здесь)Простое имя="DisplayValue" value="{?Consumer}" />
  • (Открывающий тег здесь)Простое имя="DisplayValue" value="{?Consumer}" /> - Это строка, которую мне нужно удалить

Это строка в файле.

Regex - Как удалить последний экземпляр найденного значения поиска?

Regex - Как удалить последний экземпляр найденного значения поиска?

Для этого я использую функцию «Найти в файлах» в Notepad++. Тиа.

Regex - Как удалить последний экземпляр найденного значения поиска?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте выполнить следующий поиск и замену в режиме регулярных выражений (с включенной точкой):

Find:    (.*)Same Text(?:\r?\n|$)(.*)
Replace: $1$2

Это должно работать, потому что исходная группа захвата (.*) должна соответствовать и захватывать весь контент до, но не включая вхождения прошлойSame Text. Затем мы также сопоставляем и фиксируем весь контент после этого последнего вхождения. Наконец, мы заменяем только первые две группы захвата, чтобы эффективно соединить строку, которую вы хотите удалить.

Я добавил скриншот и фактический текст, который мне нужно заменить. Когда я запускаю его, я получаю 0 вхождений, которые были заменены. Я действительно думаю, что это как-то связано с форматом строки, которую я заменяю. Это строка, которую мне нужно удалить, но только последний найденный экземпляр: <Simple name = "DisplayValue" value = "{?Consumer}" />

Aleksandar Zoric 24.07.2019 13:31

Как говорится в моем ответе, вам нужно проверить . matches newline

Tim Biegeleisen 24.07.2019 13:34

Сейчас проверил, но данных нет. Если я ищу строку, которую мне нужно удалить в одиночку, она находит все экземпляры в файле, но когда я использую (.*)Text here(?:\r?\n|$)(.*), то это не так..

Aleksandar Zoric 24.07.2019 13:53

@AleksandarZoric Вам нужно избежать \? буквального вопросительного знака в вашем шаблоне.

Tim Biegeleisen 24.07.2019 14:58

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

Aleksandar Zoric 24.07.2019 16:10

Необработанные данные: <Simple name = "DisplayValue" value = "{?Consumer}" />

Aleksandar Zoric 24.07.2019 16:11

Вы спасли день! Мне не хватило 2 побегов. Большое спасибо за это. Ценить это.

Aleksandar Zoric 24.07.2019 16:27

Другие вопросы по теме