PowerShell'de Dizedeki Karakterin Konumunu Bulma [3 Yol]
IndexOf() Yöntemini Kullanma
PowerShell'de dizedeki karakterin konumunu bulmak için IndexOf() komutunu kullanın. indexOf() yöntemi, karakterin String'de ilk geçtiği yerin dizinini döndürür.
IndexOf() Yöntemini kullanın:
$string = "Hello, world!"
$position = $string.IndexOf(",")
Write-Host "Input string: $string"
Write-Host "Position of comma: $position"Çıkış:
Input string: Hello, world!
Position of comma: 5Yukarıdaki kodda çıktı, giriş dizesinin Merhaba dünya! olduğunu ve virgül karakterinin dizedeki konumunun 5 olduğunu gösterir. .
IndexOf() yöntemi, belirtilen karakterin dizedeki ilk oluşumunun veya alt dizesinin sıfır tabanlı dizinini döndürür. Bu durumda virgül karakteri belirtilen karakterin ilk geçtiği yer olduğundan yöntem 5 değerini döndürür.
LastIndexOf() Yöntemini Kullanma
Karakterin dizedeki konumunu bulmak için LastIndexOf() yöntemini kullanın.
LastIndexOf() Yöntemini kullanın:
$string = "Hello, world, again!"
$lastCommaPosition = $string.LastIndexOf(",")
$lastWorldPosition = $string.LastIndexOf("world")
Write-Host "Input string: $string"
Write-Host "Position of last comma: $lastCommaPosition"
Write-Host "Position of last 'world': $lastWorldPosition"Çıkış:
Input string: Hello, world, again!
Position of last comma: 12
Position of last 'world': 7LastIndexOf() yöntemi, bir karakterin ve bir alt dizenin bir dizedeki son oluşumunun konumunu bulmak için kullanılır. Bu kod bölümü öncekine benzer, ancak world alt dizesinin $içinde son geçtiği yerin dizinini bulmak için değişkenini kullanır ve sonucu LastIndexOf() yöntemini kullanır. string$lastWorldPosition adlı bir değişkene atar.
Normal İfadeyi Kullanma
Bir dizedeki bir karakterin konumunu bulmak için normal ifade yöntemini kullanın.
Normal İfade Kullanın:
$string = "Hello, world!"
$pattern = ","
$match = $string | Select-String -Pattern $pattern
$position = $match.Matches.Index
Write-Host "Input string: $string"
Write-Host "Search pattern: $pattern"
Write-Host "Match position: $position"Çıkış:
Input string: Hello, world!
Search pattern: ,
Match position: 5Düzenli ifadeler, metni eşleştirmek ve değiştirmek için kullanılan kalıplardır. Bu durumda, dizedeki tüm boşlukları eşleştirmek ve bunları boş bir dizeyle değiştirmek için normal ifade modelini kullanabiliriz. Yukarıdaki kod, sırasıyla giriş dizesini ve bulmak istediğimiz karakteri temsil eden $string ve $pattern adlı iki değişkeni tanımlar.
Select-String cmdlet'i, modelin giriş dizesini aramak için kullanılır. Bu cmdlet, giriş dizesini bir ardışık düzen girişi olarak alır ve -Pattern bayrağı tarafından belirtilen modeli arar. Bu örnekte kalıp yalnızca bir virgülden oluşuyor. Select-String cmdlet'inin çıktısı, eşleşmeyle ilgili bilgileri içeren bir MatchInfo nesnesidir.
MatchInfo nesnesinin MatchInfo özelliğinin Index özelliğine erişerek eşleşmenin konumunu elde edebiliriz. Bu değer, giriş dizesinde belirtilen kalıpla eşleşen ilk karakterin dizinini temsil eder.
Bunların hepsi PowerShell'de String'de karakterin konumunun nasıl bulunacağıyla ilgilidir.
