замена кавычек во всех файлах

#regex #intellij-idea

#регулярное выражение #intellij-идея

Вопрос:

Я хочу заменить все строки без интерполяции строк, которая использует двойные кавычки в одинарные кавычки

например:

 <?php
require_once $__CFG_dir_lib . "systemconfiguration.php";
require_once $__CFG_dir_lib . "lib.php";
$bla = "test $a 123";
$x = '<a href="123">test</a>';
$y = "<a href='123'>ntest</a>";
  

в:

 <?php
require_once $__CFG_dir_lib . 'systemconfiguration.php';
require_once $__CFG_dir_lib . 'lib.php';
$bla = "test $a 123";
$x = '<a href="123">test</a>';
$y = "<a href='123'>ntest</a>";
  

кто я могу сделать это с помощью IntelliJ, не щелкая по одному введите описание изображения здесь

то, что я пробовал, было:

 find: "([^"'$\] )"
replace: '$1'
  

но он все равно заменяет $x пример

Ответ №1:

Возможно в Notepad (и любом другом редакторе, использующем Perl или PCRE)

Я заметил, что вы делаете это в текстовом редакторе. В большинстве редакторов это будет очень сложно. В редакторе, использующем PCRE движок, мы можем сделать это следующим образом:

Поиск: '[^']*'(*SKIP)(*F)|"((?:(?!$w)[^"'])*)"

Заменить: '$1'

В онлайн-демонстрации посмотрите на замены в нижней панели.

Комментарии:

1. Эй, Коккизу, если это вариант, дайте мне знать, и я добавлю объяснение и ссылки. 🙂

2. спасибо, но нет, я не использую Windows ^^ (пользователь Linux)

3. о, подождите, может быть, я мог бы использовать find и perl