如何使用正则表达式替换节点中的字符串?

时间:2015-04-15 16:53:17

标签: javascript regex node.js

我在使用以下代码替换字符串时遇到了困难。

基本上我有一个.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");

如何获得我想要的结果?

2 个答案:

答案 0 :(得分:0)

试试这个正则表达式:regex: "'DB_NAME', .*"

答案 1 :(得分:0)

这对我有用:

regex: "'DB_NAME', [^)]*",

您未取代" foo" 的原因是因为您的正则表达式符合"' DB_NAME',& #34; 后跟零个或多个空格。其余的'foo');完好无损。


说明:

[^)]*表示匹配零个或多个不是紧密的字符)的字符。

[^]是正则表达式否定字符类组。这意味着匹配不在此字符列表中的字符。

相关问题