我有一个生成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转义字符(反引号),但无法使转换工作。
使用具有正向前期零正序断言的正则表达式。
$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"