Замена специальных диапазонов символов в Power Shell - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь выполнить тест для замены специальных символов в моем файле.Шаблон замены строки содержит символы в диапазонах, которые мне нужно заменить на ?

"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

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Это должно сделать это:

"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', '?'
0 голосов
/ 24 октября 2018

Вам нужно использовать $ () 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 ?,?,?,?,?,?
...