Notepad++ Regex заменяет полную строку в двойных кавычках. Перепробовал все возможности без толку

Мне нужно заменить строку "что-то \ что-то" в строке ниже, в нескольких текстовых файлах. Строка в двойных кавычках отличается в каждом файле, а остальная часть строки одинакова. А также некоторые файлы могут иметь \, а некоторые нет. Мне нужно заменить его на общий текст. Скажите Имя пользователя.

Я пробовал много регулярных выражений, как,

CType(extensionParams(3),ParameterValue).Value = "." / ".*" / "[A-Za-z]" и ничего не нашел. Я использую NOTEPAD++ 6.3.2

Найти: CType(extensionParams(3),ParameterValue).Value = "something\something"
(Примечание: некоторые файлы могут иметь \, а некоторые нет)

Заменить: CType(extensionParams(3),ParameterValue).Value = "Username"

Пожалуйста, помогите с регулярным выражением, которое удовлетворяет моему состоянию.

Спасибо

2 ответа

Одним из решений будет

(CType(extensionParams(3),ParameterValue).Value = ")[^"]+

и заменить на

$1Username

Это соответствует первой части CType(extensionParams(3),ParameterValue).Value = " включая вступительную цитату и сохраняет эту часть в первой группе захвата.

[^"]+ класс отрицательных символов, который соответствует любому символу, который не является кавычкой, один или несколько раз. Так что эта часть будет соответствовать вашей строке между кавычками, которые вы хотите заменить. Это не будет соответствовать заключительной цитате.

С $1 в строке замены вы получаете содержимое из первой группы захвата.

Попробуйте найти регулярное выражение (CType\(extensionParams\(3\),ParameterValue\)\.Value = )"[^"]*" и заменить на \1"Username" на такие строки, как:

CType (extensionParams (3), ParameterValue).Value = "что-то \ что-то"

Обратите внимание, что круглые скобки ( а также ) указывают захваты и поэтому должны быть экранированы, чтобы соответствовать фактическим скобкам. Большая часть строки поиска захватывается, чтобы сохранить ввод в тексте замены. Текст между цитатами, с которыми я соответствовал [^"]* который найдет ноль или более символов, которые не являются двойными кавычками. Возможно, стоит изменить этот раздел, чтобы [^"\r\n"] если строка должна быть в одной строке.

Для замены используйте \1 включить текст, найденный в результате поиска. Некоторые другие редакторы регулярных выражений используют $1 для той же цели. Блокнот ++ использует \1, Обратите внимание, что если вам нужно включить круглые скобки в тексте замены, их нужно будет экранировать обратной косой чертой.

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