这实际上只是对Graimer 解决方案的评论,但它会太长而且作为评论也不够可读,所以我将其作为(补充)答案。
要在删除后重新包装字符串,USER\
您可以执行以下操作:
$s = "Members : {member1, member2, member3, member4, member5, member6}"
$s -match '^(.*?{)(.*)(})$'
$pad = " " * $matches[1].Length
$matches[1] + ($matches[2] -replace '(.{1,20},) ', "`$1`r`n$pad") + $matches[3]
第一个正则表达式将字符串分成 3 个部分,可以通过$matches
集合访问:
Name Value
---- -----
3 }
2 member1, member2, member3, member4, member5, member6
1 Members : {
0 Members : {member1, member2, member3, member4, member5, member6}
$matches[1]
是包括左大括号的序言,$matches[2]
是成员列表,$matches[3]
是右大括号。现在你只需要以$matches[2]
你想要的任何长度包装:
'(.*{1,20},) '
上面的意思是“最长匹配最多 20 个字符,后跟逗号和空格”。将其替换为第一组( $1
) 后跟换行符 (```r n``) and a number of spaces that matches the length of the prologue (
$pad`) 并将其与序言和尾随花括号粘合在一起。