Python: Periksa apakah String Berisi Substring

Memeriksa apakah string berisi bantuan substring untuk menggeneralisasi persyaratan dan membuat kode yang lebih fleksibel. Selain itu, bergantung pada model domain Anda โ€“ memeriksa apakah string berisi substring juga memungkinkan Anda menyimpulkan bidang objek, jika string menyandikan bidang itu sendiri.

Dalam panduan ini, kita akan melihat cara memeriksa apakah suatu string berisi substring dalam Python.

Grafik in Operator

Cara termudah untuk memeriksa apakah string Python berisi substring adalah dengan menggunakan the in operator.

Grafik in operator digunakan untuk memeriksa struktur data untuk keanggotaan di Python. Ini mengembalikan Boolean (baik True or False). Untuk memeriksa apakah string berisi substring di Python menggunakan in operator, kami cukup memanggilnya di superstring:

fullstring = "StackAbuse"
substring = "tack"

if substring in fullstring:
    print("Found!")
else:
    print("Not found!")

Operator ini adalah singkatan untuk memanggil objek __contains__ metode, dan juga berfungsi dengan baik untuk memeriksa apakah suatu item ada dalam daftar. Perlu dicatat bahwa itu tidak aman-nol, jadi jika kita fullstring menunjuk ke None, pengecualian akan dilemparkan:

TypeError: argument of type 'NoneType' is not iterable

Untuk menghindari ini, pertama-tama Anda ingin memeriksa apakah itu menunjuk ke None atau tidak:

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")

Grafik String.indeks() metode

Tipe String di Python memiliki metode yang disebut index() yang dapat digunakan untuk menemukan indeks awal kemunculan pertama substring dalam sebuah string.

Jika substring tidak ditemukan, a ValueError pengecualian dilemparkan, yang dapat ditangani dengan blok coba-kecuali-lain:

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")

Metode ini berguna jika Anda juga perlu mengetahui posisi substring, bukan hanya keberadaannya di dalam string penuh. Metode itu sendiri mengembalikan indeks:

print(fullstring.index(substring))

Padahal โ€“ demi memeriksa apakah string berisi substring, ini adalah pendekatan verbose.

Metode String.find()

Kelas String memiliki metode lain yang disebut find() yang lebih nyaman digunakan daripada index(), terutama karena kita tidak perlu khawatir menangani pengecualian apa pun.

If find() tidak menemukan kecocokan, ia mengembalikan -1, jika tidak ia mengembalikan indeks paling kiri dari substring dalam string yang lebih besar:

Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan termasuk lembar contekan. Hentikan perintah Googling Git dan sebenarnya belajar itu!

fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")

Secara alami, ia melakukan pencarian yang sama seperti index() dan mengembalikan indeks awal substring di dalam string induk:

print(fullstring.find(substring))

Ekspresi Reguler (RegEx)

Ekspresi reguler menyediakan cara yang lebih fleksibel (walaupun lebih kompleks) untuk memeriksa string untuk pencocokan pola. Dengan Ekspresi Reguler, Anda dapat melakukan pencarian yang fleksibel dan canggih melalui ruang pencarian yang jauh lebih besar, bukan pemeriksaan sederhana, seperti yang sebelumnya.

Python dikirimkan dengan modul bawaan untuk ekspresi reguler, yang disebut re. itu re modul berisi fungsi yang disebut search(), yang dapat kita gunakan untuk mencocokkan pola substring:

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"

Metode ini paling baik jika Anda memerlukan fungsi pencocokan yang lebih kompleks, seperti pencocokan yang tidak peka huruf besar/kecil, atau jika Anda berurusan dengan ruang pencarian yang besar. Jika tidak, komplikasi dan kecepatan regex yang lebih lambat harus dihindari untuk kasus penggunaan pencocokan substring sederhana.

tentang Penulis

Artikel ini ditulis oleh Jacob Stopak, seorang konsultan dan pengembang perangkat lunak dengan hasrat untuk membantu orang lain meningkatkan kehidupan mereka melalui kode. Yakub adalah pencipta Komitmen Awal โ€“ situs yang didedikasikan untuk membantu pengembang yang ingin tahu mempelajari bagaimana program favorit mereka dikodekan. Proyek unggulannya membantu orang belajar Git pada tingkat kode.

Stempel Waktu:

Lebih dari penyalahgunaan