#powershell #powershell-3.0
#powershell #powershell-3.0
Вопрос:
- Из строки ниже: [1;32mget[0m / dir / dir /dir {} [oiid:197,uiid:7522] [32m200[0m (676 мс)
- преобразуйте его в: get /dir/dir/dir {} [oiid:197,uiid:7522] 200 (676 мс)
- любые предложения по регулярному выражению, пожалуйста, значение 200 может быть любым числом, а значение get может быть любым http-методом.
- Я пробовал
$_.replace("[[d m]","").replace('[[1;d m]',"").replace('[[d ]m]',"")
} | Set-Content $newfilepath```
Ответ №1:
Вы можете сделать следующее, используя -replace
оператор и регулярное выражение:
$string = '[1;32mget[0m /dir/dir/dir {} [oiid:197,uiid:7522] [32m200[0m (676ms)'
$string -replace '[d.*?m'
[
совпадает [
и обратите внимание, что его необходимо экранировать для буквального совпадения, поскольку [
оно является специальным для регулярных выражений. d
является цифрой. .*?
сопоставляет как можно меньше символов, пока m
не будет найдено совпадение.
Метод класса String Replace()
не поддерживает регулярные выражения. Таким образом, вы не можете использовать выражения регулярных выражений, такие как d
inside.