[英]Simpler way to replace/delete characters from string
首先,我有一段代碼,它獲取一個對象並顯示特定的行。 我得到的那一行是:
@{ "id": "nic-1867724-4351584-0",=}
現在,我使用-replace可以得到我原來想要的零件:
nic-1867724-4351584-0
這是給我簡潔代碼的代碼。
$interfaceID = skytap vm show 4370436
$interfaceID = Out-String | Select-Object ($stream -like "*nic-[0-9]*")[0]
$right = $interfaceID -replace "....$"
$interfaceID = $right -replace "@{.............",""
Write-Host $interfaceID
有更好的方法嗎? 以防萬一該字符串上有更多/更少的數字。
您可以嘗試使用正則表達式,例如將nic*
捕獲到下一個"
:
$s='@{ "id": "nic-1867724-4351584-0",=}'
$nic=[regex]::match($s,'(nic-(.)*?)"').Groups[1].value
第一種選擇
$s='@{ "id": "nic-1867724-4351584-0",=}'
$s-replace'@|,='|ConvertFrom-Json
第二選擇
$s='@{ "id": "nic-1867724-4351584-0",=}'
$s-replace'",=}'-replace'.+"'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.