我有一个字符串,如下所示
$mystring="t={p:391C4D8E-9A45-42BF-9EF2-22CC5AFD941F,q:a&b,r:rut_ggrpg-1x,a:123.c.in/dev1}"
我想使用reular表达式将其转换为以下格式
t={'p':'391C4D8E-9A45-42BF-9EF2-22CC5AFD941F','q':'a&b','r':'rut_ggrpg-1x','a':'123.c.in/dev1'}"
我使用以下代码尝试了它,但它没有工作
$mystring -replace '([^{,]+):([^,}])+',"'`$1':'`$2'"
答案 0 :(得分:1)
答案 1 :(得分:1)
这样的事情应该有效:
$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'}