Как написать RegEx, который начинается и заканчивается на разных строках, эти строки включают одно совпадающее слово только внутри - PullRequest
0 голосов
/ 01 января 2019

Я хочу заменить кодовую группу из 3 строк в одном и том же файле и в других файлах с помощью функции «найти и заменить» с помощью регулярных выражений (регулярное выражение). В этих строках есть только одна общая черта:то же самое слово «mailicon4.gif» в последней строке, и я хочу выделить всю последнюю строку, и я хочу, чтобы выбор начинался с тега «class =», который появляется на 2-3 строки раньше.Я скопировал часть, которую хочу выбрать, с помощью поиска и заменил на "", чтобы удалить ее.

Я уже пробовал такой код, например:? Maili.? $ \ R

Он выбирает последний абзац, но не начинается с последнего "

    <a class="nonblock nontext" id="u209382" href="mailto:info@example.com">
      <!-- rasterized frame --><img class="temp_no_img_src" id="u209382_img" alt="" width="66" height="66"
        data-orig-src="images/mailicon4-u209382.png?crc=143036675" src="images/mailicon4.gif?crc=4208392903" /></a>

1 Ответ

0 голосов
/ 01 января 2019
  • Ctrl + F
  • Найти что: <a (?:(?!</a>).)*mailicon4\.gif.*?</a>
  • Заменить на: $1 # пробел, затем $ 1
  • check Обтекание
  • check Регулярное выражение
  • CHECK . matches newline

Объяснение:

<a                  # start tag
(?:(?!</a>).)*      # 0 or more any character, but not </a>
mailicon4\.gif      # literally
.*?                 # 0 or more any character, not greedy
</a>                # literally

Демонстрация

...