Вариант 1 (с использованием кода VS)
Это соответствует только одному да sh за раз, а не всем тире. Это связано с ограничением поиска внутри одного набора тегов. означает, что он может сделать только один проход за раз. Я собирался удалить этот ответ, но если это единственный ответ, данный он может быть лучше, чем ничего. Обходной путь будет заключаться в том, что вам придется обновить sh поиск (кнопка над окном поиска) и нажимать кнопку замены снова и снова. Если есть много черточек, это будет раздражать, но лучше, чем отсутствие ответа.
Я возился с Visual Code Studio, и, кажется, следующее работает.
(<translated>(.|\n)*?)(-)((.|\n)*?<\/translated>)
Предполагая, что вы, возможно, захотите, например, заменить da sh, возможно добавив обратно группы 1 и 4, обернутые вокруг любого нового текста ...
$1 <yourTextHere> $4
Пример:
До замены:
После замены (обратите внимание только на 3-4
в первом разделе файла (s), и 3 to 4
не изменяется):
Вариант 2 / Обновление (с использованием скобок. io)
Хотя я не уверен в причине того, что VSCode не соответствует файлам, следующее регулярное выражение работает с скобками (google Brackets.io) для нескольких файлов ...
-(?=[^<]*?<\/translated>)
Вы должны иметь все свои файлы в папке и открыть папку. Затем поиск в проекте (Find > Find in files
). Обратите внимание, что на скриншоте показаны совпадения, найденные во всех файлах. На нижней панели для выбранного файла t2 copy.txt
он соответствует сначала в строке 6, а затем в строке 16 и (правильно) не совпадает в строке 10, поскольку он не содержится в переведенном наборе тегов.