【问题标题】:Regular expression to convert string to dictionary format using powershell使用powershell将字符串转换为字典格式的正则表达式
【发布时间】:2014-04-14 15:52:17
【问题描述】:

我有一个字符串如下所示

$mystring="t={p:391C4D8E-9A45-42BF-9EF2-22CC5AFD941F,q:a&b,r:rut_ggrpg-1x,a:123.c.in/dev1}"

我想使用正则表达式将其转换为以下格式

t={'p':'391C4D8E-9A45-42BF-9EF2-22CC5AFD941F','q':'a&b','r':'rut_ggrpg-1x','a':'123.c.in/dev1'}"

我用下面的代码试过了,但是没有用

$mystring -replace '([^{,]+):([^,}])+',"'`$1':'`$2'"

【问题讨论】:

    标签: regex powershell


    【解决方案1】:

    试试这个 -

    Regex   -  ([^{,:]+)\:([^,}]+)
    Replace -  '$1':'$2'
    

    演示here

    【讨论】:

      【解决方案2】:

      这样的事情应该可以工作:

      $mystring -replace '\{',"{'" -replace '\}',"'}" -replace '([:,])',"'`$1'"
      

      第一个替换('\{',"{'",即\{{')将一个左大括号替换为一个左大括号,后跟一个单引号。第二个替换('\}',"'}",即\}'})将一个右大括号替换为一个带单引号的右大括号。最后一个替换('([:,])',"'`$1'",即([:,])'$1')用单引号之间的冒号/逗号替换所有冒号和逗号。

      PS C:\> $s = "t={p:391C4D8E-9A45-42BF-9EF2-22CC5AFD941F,q:a&b,r:rut_ggrpg-1x,a:123.c.in/dev1}"
      PS C:\> $s -replace '\{',"{'" -replace '\}',"'}" -replace '([:,])',"'`$1'"
      t={'p':'391C4D8E-9A45-42BF-9EF2-22CC5AFD941F','q':'a&b','r':'rut_ggrpg-1x','a':'123.c.in/dev1'}

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-16
        • 2012-01-28
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多