#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