powershell正则表达式在替换期间显示变量名而不是其值

时间:2017-05-03 19:22:25

标签: regex powershell

function update(data){
   var id = new require('mongodb').ObjectID(data._id);
        userData = {
                    name:data.name,
                    email:data.email,
                    phone: data.phone
                };
 return collection.findAndModify(
          {_id:id}, // query
          [['_id','asc']],  // sort order
          {$set: userData}, // replacement
          { "new": true }
          ).then(function(doc) {
                if(!doc)
                    throw new Error('Record not updated.');
                return doc.value;   
          });
    }

module.exports = {
        update:update
}

问题是用

代替了这一行

login.ruby.authentication.key)= $ secret(其中,它实际上放了$ secret而不是12345678.我正在寻找如何将$ secret的值换成$ secret的值。< / p>

1 个答案:

答案 0 :(得分:4)

在单引号文字中使用时,变量不会扩展。您需要使用允许字符串插值的双引号字符串文字。

但是,不应该扩展第一个$。要告诉PS不要插入它,在它之前添加一个反引号。见about_Quoting_Rules

  

要防止在双引号字符串中替换变量值,请使用反引号字符(`)(ASCII 96),这是Windows PowerShell转义字符。

因此,请将"`$1=$secret"替换为`$1将文字$1字符串传递给正则表达式引擎,$secret将在传递之前插入到12345678它到正则表达式引擎。