CSVを生成するPowershellスクリプトがあります。文字列内の二重引用符のみを二重引用符で囲みますが、私が使用する他のすべてのソフトウェア(Unixの世界ではとにかく)は、1つの二重引用符を意味する「」ではなく文字列内で「」を使用します。
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"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加