繁体   English   中英

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

[英]How do I use regex to replace a string in node?

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

基本上,我有一个.php文件,我想使用replace包覆盖一些常量。

以下代码的结果如下:

//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");

如何获得所需的结果?

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

这对我有用:

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

您不替换“ foo”的原因是因为您的正则表达式与“'DB_NAME'”匹配后跟零个或多个空格。 剩下的'foo'); 完整。


说明:

[^)]*表示匹配零个或多个非封闭字符( )

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM