RegEx - расширить заданную строку, оставив остальные нетронутыми - PullRequest
0 голосов
/ 21 января 2019

У меня есть ассоциативный массив внутри метода класса PHP, который выглядит следующим образом:

// ...

$filters = [
    self::FILTER_CREATION_DATE => "Base/*/Creation/Date.php",
    self::FILTER_CREATION_DATE_BETWEEN => "Base/*/Creation/Date.php",
    self::FILTER_CREATION_DATE_GREATER => "Base/*/Creation/Date.php",
    self::FILTER_CREATION_DATE_GREATER_OR_EQUAL => "Base/*/Creation/Date.php",
    self::FILTER_CREATION_DATE_LESS => "Base/*/Creation/Date.php",
    self::FILTER_CREATION_DATE_LESS_OR_EQUAL => "Base/*/Creation/Date.php",
];

// ...

Я хотел бы преобразовать эту строку из:

self::FILTER_CREATION_DATE_BETWEEN => "Base/*/Creation/Date.php",

к этому:

self::FILTER_CREATION_DATE_BETWEEN => "Base/*/Creation/Date/Between.php",

Я бы хотел использовать RegEx для расширения строки, но оставил остальное нетронутым. Мне нужно сделать это, потому что определено более 120 констант, оканчивающихся на *_BETWEEN.

Как я могу это сделать?

1 Ответ

0 голосов
/ 21 января 2019

В редакторе Intellij или в бесплатном Блокноте ++ вы можете найти и заменить на регулярное выражение. Я уверен, что другие IDE имеют аналогичную функциональность

  • Найти self::([_A-Z]+)_BETWEEN => "(.*)/Date.php"(,)*
  • Заменить self::$1_BETWEEN => "$2/Date/Between.php"$3

Регулярное выражение группирует переменные компоненты вашего поиска, заключая его в ()

В замене вы можете ссылаться на них по порядку $1, $2 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...