Заменить с помощью Regex, содержащего некоторые из предыдущих совпадений в Notepad ++
Вопрос
Я пытаюсь использовать регулярное выражение, чтобы соответствовать блоку текста, а использование заменить все, заменить его ничем, чтобы удалить его.
Но так как я иногда (но не всегда), блок появляется один за другим, когда я пытаюсь заменить все, он заменяет каждый второй блок.
Я сделал это Regex
http.*\n.*\K\n\{\n "code"(.*\n)+?\}\nhttp.*\n
.
Но он будет соответствовать всем изолированным блокам, но только каждый второй последовательный блок. Я думаю, что я должен использовать «утверждения», как описано описание здесь .Но я не мог заставить их работать.
"teamAbbr" : "Foo",
"teamName" : "Bar",
"teamNickname" : "FBar"
}
} ]
}
http://www.link_I_want_to_keep_belonging_to_above_data.com
{
"code" : "XXXXXXXXXXXXXXXXXXXXXXX",
"techMessage" : "XXXXXXXXXXXXXXXXXXXXXX",
"userMessage" : "XXXXXXXXXXXXXXXXXXX",
"host" : "XXXXXXXXXXXX",
"date" : "XXXXXXXXXXX",
"version" : "XXX"
}
http://www.url_that_belong_to_block_Iwant_to_be_rid_off.com
{
"code" : "XXXXXXXXXXXXXXXXXXXXXXX",
"techMessage" : "XXXXXXXXXXXXXXXXXXXXXX",
"userMessage" : "XXXXXXXXXXXXXXXXXXX",
"host" : "XXXXXXXXXXXX",
"date" : "XXXXXXXXXXX",
"version" : "XXX"
}
http://www.url_that_belong_to_block_Iwant_to_be_rid_off.com
. Решение
Проблема в том, что вы также соответствуете первым URL-адресам, но это недоступно, когда после матча.А также в начале файла.
Утверждения WOOTBEHIND заботятся о проблеме, но должны быть фиксированной длины.
Вам нужно искать первый URL?Т.е.делает
\{\n "code"(.*\n)+?\}\nhttp.*\n
.
Работа для вас?
Чтобы удалить целое совпадение, которое вы замените пустой строкой.Никаких специальных персонажей не нужна.