如何使用Powershell正则表达式将“”转换为\“?

问题描述 投票:2回答:1

我有一个生成CSV的Powershell脚本。只有它在字符串中引用双引号,而我使用的每一个软件(无论如何在Unix世界中)使用\“在字符串中而不是”“表示一个双引号。

使用Powershell正则表达式,我该怎么做:

"""C:\Java\jre8\bin\java"" -Djava.library.path=""C:\some\path\lib"" -classpath ""some;long;classpath"" com.foo.app.Main"

进入这个?

"\"C:\Java\jre8\bin\java\" -Djava.library.path=\"C:\some\path\lib\" -classpath \"some;long;classpath\" com.foo.app.Main"

我已经尝试使用假设的Powershell转义字符(反引号),但无法使转换工作。

powershell csv escaping
1个回答
1
投票

使用具有正向前期零正序断言的正则表达式。

$String='"""C:\Java\jre8\bin\java"" -Djava.library.path=""C:\some\path\lib"" -classpath ""some;long;classpath"" com.foo.app.Main"
$String
$String -replace '"(?="[^"])','\'

收益率:

"""C:\Java\jre8\bin\java"" -Djava.library.path=""C:\some\path\lib"" -classpath ""some;long;classpath"" com.foo.app.Main"
"\"C:\Java\jre8\bin\java\" -Djava.library.path=\"C:\some\path\lib\" -classpath \"some;long;classpath\" com.foo.app.Main"
© www.soinside.com 2019 - 2024. All rights reserved.