PowerShell'de Dizenin Alt Dize İçerip içermediğini Kontrol Edin [4 yol]


1. Genel Bakış

PowerShell komut dosyası oluşturmada ortak bir gereksinim, bir dizenin belirli bir alt dize içerip içermediğini kontrol etmektir. Bu, genellikle koşullu mantık, veri doğrulama veya filtreleme işlemlerinde kullanılan, metin işlemede temel bir görevdir.

Bu makalede, like operatörü,match operatörü, contains()< gibi çeşitli yöntemleri kullanarak dizenin alt dize içerip içermediğini kontrol etmenin farklı yollarını göreceğiz. /code> yöntem vb.

2. Problem İfadesine Giriş

Bir dize ve alt dize verildiğinde, amacımız dizenin büyük/küçük harfe duyarlı ve büyük/küçük harfe duyarlı olmayan bir şekilde alt dize içerip içermediğini kontrol etmektir.

Örneğin, "Merhaba Dünya" dizesi verildiğinde, bunun "dünya" alt dizesini içerip içermediğini kontrol etmek isteyebiliriz. Kullanılan yönteme bağlı olarak, bu kontrol büyük/küçük harfe duyarlı ("Dünya" ve "dünya" arasında ayrım yaparak) veya büyük/küçük harfe duyarlı olmayabilir (her ikisini de eşit olarak ele alır).

3. .Contains() Yöntemini Kullanma (Büyük/Küçük Harfe Duyarlı)

En basit yol, dizenin Contains() yöntemini kullanmaktır.

Contains(), dizenin alt dize içerip içermediğini kontrol eden dize yöntemidir. Büyük/küçük harfe duyarlıdır.

-match operatörünü kullanma:

$string = "Hello World"
$substring = "world"

if ($string.Contains($substring)) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Çıkış:

String does not contain the substring.

.Contains() yöntemi, dizenin alt dize içermesi durumunda true değerini döndürür, aksi halde false değerini döndürür.

.Contains(), doğrudan alt dize kontrolleri için oldukça verimlidir ve tartışmasız en basit yöntemdir.

Bu yöntemi büyük/küçük harfe duyarlı hale getirmek için, toLower() yöntemini kullanarak her iki dizeyi de küçük harfe dönüştürebilir ve ardından Contains() yöntemini kullanabiliriz. .

-match operatörünü kullanma:

$string = "Hello World"
$substring = "world"

if ($string.ToLower().Contains($substring.ToLower())) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Çıkış:

String contains the substring.

4. -match Operatörünü Kullanmak (Büyük/Küçük Harfe Duyarsız)

PowerShell'deki -match operatörü, kalıp eşleştirme için normal ifadeler kullanır, bu da onu alt dize kontrolleri için güçlü bir araç haline getirir.

PowerShell'deki -match operatörü varsayılan olarak büyük/küçük harfe duyarlı değildir, bu da onu büyük/küçük harfin önemli olmadığı aramalar için uygun kılar.

-match operatörünü kullanma:

$string = "Hello World"
$substring = "world"

if ($string -match $substring) {
    "String contains the substring (case-insensitive)."
} else {
    "String does not contain the substring."
}

Çıkış:

String contains the substring (case-insensitive).

5. -like Operatörün Kullanımı (Büyük/Küçük Harfe Duyarsız)

Like operatörü, PowerShell'de joker karakter deseni eşleştirmesi için kullanılır ve alt dize kontrolleri için kullanılabilir.

Like operatörünü kullanma:

$string = "Hello World"
$pattern = "*world*"

if ($string -like $pattern) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Çıkış:

String contains the substring.

-like $pattern: $string'in $pattern joker karakter modeliyle eşleşip eşleşmediğini kontrol eder; burada * herhangi bir sayıda karakteri temsil eder.

Beğen, basit kalıplar için etkili olsa da performansı daha karmaşık joker karakter ifadeleriyle farklılık gösterebilir.

-like operatörü varsayılan olarak büyük/küçük harfe duyarlı değildir; büyük/küçük harfe duyarlı eşleşme için -clike operatörünü kullanın.

6. -clike ve -cmatch Operatörlerini Kullanmak

-clike ve -cmatch Operatörleri, sırasıyla like ve match operatörlerinin büyük/küçük harfe duyarlı alternatifleridir.

Like operatörünü kullanma:

$string = "Hello World"
$pattern = "*world*"

if ($string -clike $pattern) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Çıkış:

String does not contain the substring.

7. Sonuç

Bu makalede, PowerShell'de dizenin alt dize içerip içermediğini kontrol etmenin birden çok yolunu tartıştık.

.Contains(), doğrudan alt dize kontrolleri için oldukça verimlidir ve tartışmasız en basit yöntemdir.

-match operatörü daha karmaşık olmasına rağmen güçlü model eşleştirme yetenekleri sağlar. benzeri operatörü, joker karakter deseni eşleştirmesiyle basitlik ve esneklik arasında bir denge sunar.

İlgili makaleler