簡體   English   中英

從字符串替換/刪除字符的更簡單方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM