PowerShell: İki Dize Arasındaki Metin Nasıl Çıkarılır


PowerShell'i kullanarak iki dize arasındaki metni ayıklamak için aşağıdaki temel sözdizimini kullanabilirsiniz:

[regex]::Match($original_string, '[^string1]+(?=string2)').Value

Bu özel örnek, original_string adlı dize değişkeni içindeki string1 ile string2 arasındaki metni çıkarır.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: PowerShell'de İki Dize Arasındaki Metin Nasıl Çıkarılır

Aşağıdaki dizeye sahip olduğumuzu varsayalım:

  • Kimlik Numarası:004593Çalışan

Aşağıdaki değeri elde etmek için yalnızca iki nokta üst üste ( : ) ile Employee dizesi arasındaki metni çıkarmak istediğimizi varsayalım:

004593

Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:

$original_string = "His ID Number:004593Employee"
[regex]::Match($original_string, '[^:]+(?=Employee)').Value

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

Dizeden yalnızca 004593'ü çıkarabildiğimize dikkat edin; bu, iki nokta üst üste ( : ) ile Çalışan arasındaki metnin tamamını temsil eder. .

Belirli dizeler arasındaki metni birkaç kez çıkarmak istiyorsanız bunun yerine Matches yöntemini kullanabilirsiniz.

Örneğin aşağıdaki dizgeye sahip olduğumuzu varsayalım:

The ID Values are #004593Employee and #002321Employee

Ve aşağıdakileri elde etmek için her çalışan kimliğinin yalnızca numarasını çıkarmak istediğimizi varsayalım:

  • 004593
  • 002321

Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:

$original_string = "The ID Values are #004593Employee and #002321Employee"
[regex]::Matches($original_string, '[^#]+(?=Employee)').Value

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

Aşağıdakileri elde etmek için her çalışan kimliğinin yalnızca numarasını çıkarabildiğimize dikkat edin:

  • 004593
  • 002321

Eşleşmeler yöntemini kullanarak, iki belirli dize arasındaki metnin tüm oluşumlarını ayıklayabiliyoruz.

İlgili makaleler