regex 使用PowerShell获取[]中的字符串

pw9qyyiw  于 2023-08-08  发布在  Shell
关注(0)|答案(1)|浏览(112)

我有下面的内容在一个文件中,我想改变字符串的格式

$reg = xyz.abc.1234['xyz']

$regxyz = xyz.abc.1234['abc']

字符串
我能够替换格式,但我无法获取['']中的字符串值

$path = path/to/file

$content = (Select-String -Path $path -Pattern "xyz.abc.1234\['.*'\]").Matches.Value

foreach ($string in $content) {

    #$value = "Revision"

    $string -Replace "xyz.abc.1234\['.*'\]", """`${$value}""" 
}


预期结果为

$reg = "${xyz}"

$regxyz = "${abc}"

b4lqfgs4

b4lqfgs41#

使用以下模式:

'xyz\.abc\.1234\[''(\w+)''\]'

字符串
\w+周围的(...)括号将“捕获”[...]内部引号内的字符串,此时我们可以在替代字符串中将其称为$1

$string -Replace 'xyz\.abc\.1234\[''(\w+)''\]', '"$${$1}"'

相关问题