我正在使用powershell脚本将文件解析为不同的分隔格式,可以轻松加载到Excel或DB中。
除了找到并替换字符串“~S~ |”之外,我已经得到了它。所有字符都应该用文字表示。
我尝试过以下无效: “\ 382 4 \〜\ |” “〜S〜\ |” “〜S〜|” < - 这个是因为|是或在RegEx土地
任何建议都会有所帮助。
答案 0 :(得分:6)
regex.escape方法适用于这种情况,您不知道哪些字符被认为是特殊字符(元字符)。
PS> [regex]::escape("~S~|")
~S~\|
你可以看到唯一的元字符是管道符号(例如“|”),并且escape方法为你转义它(在它前面添加了一个反斜杠)。
PS> "this~S~|is~S~|a~S~|dog" -replace [regex]::escape('~S~|')
thisisadog
答案 1 :(得分:1)
$string = "this~S~|is~S~|a~S~|dog"
$string -replace '~S~\|',' '
答案 2 :(得分:1)
我能够解决这个问题。感谢您的所有输入,所有答案都按照您的描述工作。
为了让我在一个带有'find'值的多个实例的非常长的字符串中工作,我最终不得不在它增长时构建字符串。
例如:
$tString = $_
$tString = $tString -replace 'Name:', ''
$tString = $tString -replace 'Id:', ''
$tString = $tString -replace 'Administrative group:', ''
$tString = $tString -replace 'Administrative class\(es\):', ''
$tString = $tString -replace 'Primary group:', ''
$tString = $tString -replace 'Session group:', ''
$tString = $tString -replace '~S~([^-]+)\|', '$1|'
$tString = $tString -replace ';\|', ';'
return $tString