【问题标题】:PowerShell regex to filter values between {{ and }}PowerShell 正则表达式过滤 {{ 和 }} 之间的值
【发布时间】:2017-02-04 09:05:32
【问题描述】:

我正在尝试编写一个正则表达式来过滤大括号之间存在的值: 示例:$path = C:\serices\ApplicationName\{{NewFolderName}}

我想从上述变量中​​过滤值“NewFolderName”。一旦我执行,我想在我的输出中看到"NewFolderName"。我正在使用 PowerShell 2.0 版。有人可以建议我可能的解决方案。

提前致谢。

【问题讨论】:

    标签: regex powershell powershell-2.0


    【解决方案1】:

    一种方法是:

    \{{2}(.*?)\}{2}
    

    a demo on ideone.com

    【讨论】:

    • 感谢您的快速回复。我想从变量中提取所有可能的匹配项。示例:如果这是我的变量,$path = "C:\Users\{{XXX}}\Downloads\{{YYY}}\AppName" 我希望在输出中包含以下值:XXXYYY
    【解决方案2】:

    这是您问题的完整 powershell。

    $path = "C:\users\{{XXX}}\Downloads\{{YYY}}\AppName"
    $matches = [regex]::Matches($path,"\{{2}(.*?)\}{2}").value
    

    【讨论】:

    • 非常感谢迈克尔。这工作正常。你能告诉我{2}是什么意思吗?谢谢
    • @Mahesh,在正则表达式中,{2} 表示前一个模式的两次重复。所以另一种写法是$matches = [regex]::Matches($path,"\{\{(.*?)\}\}").value。如果迈克尔的回答对您有帮助,请投票并将其标记为已回答。
    • 谢谢 Burt_Harris
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2016-11-18
    • 2012-02-22
    • 2023-04-07
    相关资源
    最近更新 更多