Bir dizenin bir alt dize içerip içermediğini kontrol etmek, koşulları genelleştirmeye ve daha esnek kod oluşturmaya yardımcı olur. Ek olarak, etki alanı modelinize bağlı olarak, bir dizenin bir alt dize içerip içermediğini kontrol etmek, eğer bir dize kendi içinde bir alanı kodluyorsa, bir nesnenin alanlarını çıkarmanıza da olanak tanıyabilir.
Bu kılavuzda şunlara göz atacağız: bir dizenin bir alt dize içerip içermediğini kontrol etme Python'da.
The in Kullanım
Bir Python dizesinin bir alt dize içerip içermediğini kontrol etmenin en kolay yolu, in
operatörü.
The in
operatörü Python'da üyelik için veri yapılarını kontrol etmek için kullanılır. Bir Boole değeri döndürür (ya True
or False
). Python'da bir dizenin bir alt dize içerip içermediğini kontrol etmek için in
operatörünü kullanmak için onu basitçe süperdizgiden çağırırız:
fullstring = "StackAbuse"
substring = "tack"
if substring in fullstring:
print("Found!")
else:
print("Not found!")
Bu operatör bir nesnenin çağrılmasının kısaltmasıdır. __contains__
yöntemidir ve ayrıca bir öğenin listede bulunup bulunmadığını kontrol etmek için de iyi çalışır. olduğunu belirtmekte fayda var null güvenli değil, yani eğer bizim fullstring
işaret ediyordu None
bir istisna atılır:
TypeError: argument of type 'NoneType' is not iterable
Bunu önlemek için öncelikle işaret edip etmediğini kontrol etmek isteyeceksiniz. None
ya da değil:
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print("Found!")
else:
print("Not found!")
The String.index() Yöntem
Python'daki String türünün adı verilen bir yöntemi vardır. index()
bu, bir dizede bir alt dizenin ilk oluşumunun başlangıç dizinini bulmak için kullanılabilir.
Alt dize bulunamazsa, bir ValueError
try-hariç-else bloğuyla ele alınabilecek bir istisna atılır:
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index(substring)
except ValueError:
print("Not found!")
else:
print("Found!")
Bu yöntem, alt dizenin tam dize içindeki varlığının aksine, konumunu da bilmeniz gerekiyorsa kullanışlıdır. Yöntemin kendisi dizini döndürür:
print(fullstring.index(substring))
Ancak bir dizgenin bir alt dizge içerip içermediğini kontrol etmek adına bu ayrıntılı bir yaklaşımdır.
String.find() Yöntemi
String sınıfının adında başka bir yöntemi var find()
hangisinin kullanımı daha uygundur index()
, çünkü herhangi bir istisnayı ele alma konusunda endişelenmemize gerek yok.
If find()
bir eşleşme bulamazsa -1 değerini döndürür, aksi takdirde daha büyük dizedeki alt dizenin en soldaki dizinini döndürür:
En iyi uygulamalar, endüstri tarafından kabul edilen standartlar ve dahil edilen hile sayfası ile Git'i öğrenmek için uygulamalı, pratik kılavuzumuza göz atın. Googling Git komutlarını durdurun ve aslında öğrenmek o!
fullstring = "StackAbuse"
substring = "tack"
if fullstring.find(substring) != -1:
print("Found!")
else:
print("Not found!")
Doğal olarak aynı aramayı gerçekleştirir. index()
ve üst dize içindeki alt dizenin başlangıcının dizinini döndürür:
print(fullstring.find(substring))
Normal İfadeler (RegEx)
Düzenli ifadeler, dizelerin kalıp eşleşmesi açısından kontrol edilmesi için daha esnek (ancak daha karmaşık) bir yol sağlar. Normal İfadeler ile öncekiler gibi basit kontroller yerine, çok daha geniş arama alanları üzerinden esnek ve güçlü aramalar gerçekleştirebilirsiniz.
Python, düzenli ifadeler için yerleşik bir modülle birlikte gelir. re
. re
modül adı verilen bir işlevi içerir search()
bunu bir alt dize modeliyle eşleştirmek için kullanabiliriz:
from re import search
fullstring = "StackAbuse"
substring = "tack"
if search(substring, fullstring):
print "Found!"
else:
print "Not found!"
Büyük/küçük harfe duyarlı olmayan eşleştirme gibi daha karmaşık bir eşleştirme işlevine ihtiyacınız varsa veya büyük arama alanlarıyla uğraşıyorsanız bu yöntem en iyisidir. Aksi takdirde, basit alt dize eşleştirme kullanım durumları için regex'in komplikasyonundan ve daha yavaş hızından kaçınılmalıdır.
Yazar Hakkında
Bu makale, kod aracılığıyla başkalarının hayatlarını iyileştirmelerine yardımcı olma tutkusuna sahip bir yazılım danışmanı ve geliştiricisi olan Jacob Stopak tarafından yazılmıştır. Yakup'un yaratıcısı İlk Taahhüt – meraklı geliştiricilerin en sevdikleri programların nasıl kodlandığını öğrenmelerine yardımcı olmaya adanmış bir site. Öne çıkan projesi insanlara yardımcı oluyor Git'i öğren kod düzeyinde.