regex - 在替换中使用变量

标签 regex powershell

我有一个文本文件,想用PowerShell中的变量内容进行正则表达式/替换。

  • 文件:my.json
  • Powershell中的变量$version
  • 搜索:version : "something"
  • 用变量"something"内容替换$version

  • 这是我尝试过的。搜索和替换按预期工作,但结果是version : "$version"
    (Get-Content my.json) -replace '(?<pre>"version"[\s]*:[\s]*)(?<V>"[^\"]*")', '$1"$version"' | Out-File my.json
    

    最佳答案

    为了能够在替换字符串中使用变量,您需要使用双引号替换字符串,这意味着您需要转义反向引用和嵌套的双引号:

    (Get-Content my.json) -replace '...', "`$1`"$version`"" | ...
    

    关于regex - 在替换中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38592117/

    相关文章:

    java - 为什么 Matcher 对于 Java 运行时获取或提供的字符串失败?

    Javascript String.replace 与动态正则表达式?

    powershell - 如何通过Powershell将[Microsoft.TeamFoundation.Client.TeamFoundationServerFactory] ​​::GetServer与凭据一起使用

    powershell - 注册表 `registry::` 的 PSPath - 为什么是双冒号?

    powershell - 如何获取共享文件夹中的剩余存储空间量

    function - 如何正确地将 Win32 类对象传递给函数

    powershell - 哈希表 : Use previous property to generate next property

    javascript - 正则表达式用 Grails 注释替换 JavaScript 注释

    javascript - 使用 jQuery 提取 HTML 标签外的文本

    java - 仅在正则表达式中捕获外括号作为组