正则表达式 - 扩展给定的字符串,同时保持其余部分不变



>我在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",

我想使用正则表达式来扩展字符串,但其余部分保持不变。我需要这样做,因为定义了 120 多个以 *_BETWEEN 结尾的常量。

我该怎么做?

在Intellij编辑器或免费的Notepad++中,您可以找到并替换为正则表达式。我确定其他 IDE 具有类似的功能

  • 查找self::([_A-Z]+)_BETWEEN => "(.*)/Date.php"(,)*
  • 替换self::$1_BETWEEN => "$2/Date/Between.php"$3

正则表达式通过将搜索的可变组件包装在()

在替换中,您可以按$1$2等顺序引用它们。

最新更新