替换 power shell 中的特殊字符范围
Replacing special character ranges in power shell
我正在尝试进行测试以替换文件中的特殊字符。
替换字符串模式包含我需要用 ?
替换的范围内的字符
"Hello [char]0x00,[char]0x09,[char]0x0B,[char]0x1F,[char]0x7F,[char]0xFF" -replace '[[char]0x00-[char]0x09[char]0x0B-[char]0x1F[char]0x7F-[char]0xFF]','?'
Hello [char]0x00,[char]0x09,[char]0x0B,[char]0x1F,[char]0x7F,[char]0xFF
现在上面的测试命令没有替换任何东西
我如何测试这是否有效?
你能帮我写一个命令来替换以下范围内的所有特殊字符吗?
\x00-\x09
\x0B-\x1F
\x7F-\xFF
您需要使用 $() SubExpressions
才能让您的代码正常工作。像这样:
"Hello $([char]0x00),$([char]0x09),$([char]0x0B),$([char]0x1F),$([char]0x7F),$([char]0xFF)" -replace "[$([char]0x00)-$([char]0x09)$([char]0x0B)-$([char]0x1F)$([char]0x7F)-$([char]0xFF)]","?"
输出:
Hello ?,?,?,?,?,?
应该这样做:
"Hello [char]0x00,[char]0x09,[char]0x0B,[char]0x1F,[char]0x7F,[char]0xFF" -replace '\[char\]0x0[0-9]|\[char\]0x0[B-F]|\[char\]0x1[A-F]|\[char\]0x[7F]F', '?'
我正在尝试进行测试以替换文件中的特殊字符。
替换字符串模式包含我需要用 ?
"Hello [char]0x00,[char]0x09,[char]0x0B,[char]0x1F,[char]0x7F,[char]0xFF" -replace '[[char]0x00-[char]0x09[char]0x0B-[char]0x1F[char]0x7F-[char]0xFF]','?'
Hello [char]0x00,[char]0x09,[char]0x0B,[char]0x1F,[char]0x7F,[char]0xFF
现在上面的测试命令没有替换任何东西
我如何测试这是否有效?
你能帮我写一个命令来替换以下范围内的所有特殊字符吗?
\x00-\x09
\x0B-\x1F
\x7F-\xFF
您需要使用 $() SubExpressions
才能让您的代码正常工作。像这样:
"Hello $([char]0x00),$([char]0x09),$([char]0x0B),$([char]0x1F),$([char]0x7F),$([char]0xFF)" -replace "[$([char]0x00)-$([char]0x09)$([char]0x0B)-$([char]0x1F)$([char]0x7F)-$([char]0xFF)]","?"
输出:
Hello ?,?,?,?,?,?
应该这样做:
"Hello [char]0x00,[char]0x09,[char]0x0B,[char]0x1F,[char]0x7F,[char]0xFF" -replace '\[char\]0x0[0-9]|\[char\]0x0[B-F]|\[char\]0x1[A-F]|\[char\]0x[7F]F', '?'