我在使用以下代码替换字符串时遇到了困难。
基本上我有一个.php文件,我想使用replace package覆盖一些常量。
以下代码的结果如下:
//results in
define('DB_NAME', 'foo'); //original (as defined in config.php)
define('DB_NAME', 'bar''bar'); //actual result
define('DB_NAME', 'bar'); //desired result
var replace = require("replace");
var defineSetting = function(name, value){
replace({
regex: "'DB_NAME', *",
replacement: "'DB_NAME', 'bar'",
paths: ['wordpress/wp-config.php'],
recursive: false,
silent: true,
});
}
defineSetting("DB_NAME", "testDatabase2");
如何获得我想要的结果?
答案 0 :(得分:0)
试试这个正则表达式:regex: "'DB_NAME', .*"
答案 1 :(得分:0)
这对我有用:
regex: "'DB_NAME', [^)]*",
您未取代" foo" 的原因是因为您的正则表达式符合"' DB_NAME',& #34; 后跟零个或多个空格。其余的'foo');
完好无损。
说明:
[^)]*
表示匹配零个或多个不是紧密的字符)
的字符。
[^]
是正则表达式否定字符类组。这意味着匹配不在此字符列表中的字符。