पायथन: जांचें कि क्या स्ट्रिंग में सबस्ट्रिंग है

यह जांचना कि क्या स्ट्रिंग में सबस्ट्रिंग शामिल है, सशर्तताओं को सामान्य बनाने और अधिक लचीला कोड बनाने में सहायता करता है। इसके अतिरिक्त, आपके डोमेन मॉडल के आधार पर - यह जाँचना कि क्या किसी स्ट्रिंग में एक सबस्ट्रिंग है, आपको किसी ऑब्जेक्ट के फ़ील्ड का अनुमान लगाने की अनुमति भी दे सकता है, यदि कोई स्ट्रिंग किसी फ़ील्ड को अपने आप में एन्कोड करती है।

इस गाइड में, हम एक नज़र डालेंगे कैसे जांचें कि किसी स्ट्रिंग में सबस्ट्रिंग है या नहीं अजगर में।

RSI in ऑपरेटर

यह जांचने का सबसे आसान तरीका है कि पायथन स्ट्रिंग में सबस्ट्रिंग है या नहीं in ऑपरेटर.

RSI in ऑपरेटर का उपयोग पायथन में सदस्यता के लिए डेटा संरचनाओं की जांच करने के लिए किया जाता है। यह एक बूलियन (या तो) लौटाता है True or False). यह जांचने के लिए कि क्या किसी स्ट्रिंग में पायथन में एक सबस्ट्रिंग है in ऑपरेटर, हम बस इसे सुपरस्ट्रिंग पर लागू करते हैं:

fullstring = "StackAbuse"
substring = "tack"

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

यह ऑपरेटर किसी ऑब्जेक्ट को कॉल करने के लिए शॉर्टहैंड है __contains__ विधि, और यह जांचने के लिए भी अच्छी तरह से काम करती है कि कोई आइटम किसी सूची में मौजूद है या नहीं। यह ध्यान देने योग्य बात है कि यह है शून्य-सुरक्षित नहीं, तो अगर हमारा fullstring की ओर इशारा कर रहा था None, एक अपवाद फेंक दिया जाएगा:

TypeError: argument of type 'NoneType' is not iterable

इससे बचने के लिए, आप पहले यह जांचना चाहेंगे कि क्या यह इंगित करता है None या नहीं:

fullstring = None
substring = "tack"

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

RSI स्ट्रिंग.सूचकांक() विधि

पायथन में स्ट्रिंग प्रकार की एक विधि है जिसे कहा जाता है index() इसका उपयोग किसी स्ट्रिंग में सबस्ट्रिंग की पहली घटना के शुरुआती सूचकांक को खोजने के लिए किया जा सकता है।

यदि सबस्ट्रिंग नहीं मिलती है, तो a ValueError अपवाद फेंक दिया गया है, जिसे कोशिश-छोड़कर-अन्यथा ब्लॉक के साथ संभाला जा सकता है:

fullstring = "StackAbuse"
substring = "tack"

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

यह विधि उपयोगी है यदि आपको पूर्ण स्ट्रिंग के भीतर केवल इसके अस्तित्व के विपरीत, सबस्ट्रिंग की स्थिति जानने की भी आवश्यकता है। विधि स्वयं सूचकांक लौटाती है:

print(fullstring.index(substring))

हालाँकि - यह जाँचने के लिए कि क्या किसी स्ट्रिंग में एक सबस्ट्रिंग है, यह एक वर्बोज़ दृष्टिकोण है।

String.find() विधि

स्ट्रिंग क्लास में एक और विधि है जिसे कहा जाता है find() जिसका उपयोग करना अधिक सुविधाजनक है index(), मुख्यतः क्योंकि हमें किसी भी अपवाद से निपटने के बारे में चिंता करने की ज़रूरत नहीं है।

If find() कोई मिलान नहीं मिलता है, यह -1 लौटाता है, अन्यथा यह बड़ी स्ट्रिंग में सबस्ट्रिंग का सबसे बायां सूचकांक लौटाता है:

सर्वोत्तम प्रथाओं, उद्योग-स्वीकृत मानकों और शामिल चीट शीट के साथ, Git सीखने के लिए व्यावहारिक मार्गदर्शिका देखें। Googling Git कमांड को रोकें और वास्तव में सीखना यह!

fullstring = "StackAbuse"
substring = "tack"

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

स्वाभाविक रूप से, यह वैसी ही खोज करता है जैसी index() और मूल स्ट्रिंग के भीतर सबस्ट्रिंग की शुरुआत का सूचकांक लौटाता है:

print(fullstring.find(substring))

रेगुलर एक्सप्रेशन (RegEx)

पैटर्न मिलान के लिए स्ट्रिंग्स की जांच करने के लिए रेगुलर एक्सप्रेशन अधिक लचीला (यद्यपि अधिक जटिल) तरीका प्रदान करते हैं। रेगुलर एक्सप्रेशन के साथ, आप पिछले वाले की तरह साधारण जांच के बजाय, बहुत बड़े खोज स्थानों के माध्यम से लचीली और शक्तिशाली खोज कर सकते हैं।

पायथन को नियमित अभिव्यक्तियों के लिए एक अंतर्निहित मॉड्यूल के साथ भेजा जाता है, जिसे कहा जाता है rere मॉड्यूल में एक फ़ंक्शन होता है जिसे कहा जाता है search(), जिसका उपयोग हम सबस्ट्रिंग पैटर्न से मिलान करने के लिए कर सकते हैं:

from re import search

fullstring = "StackAbuse"
substring = "tack"

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

यदि आपको केस असंवेदनशील मिलान जैसे अधिक जटिल मिलान फ़ंक्शन की आवश्यकता है, या यदि आप बड़े खोज स्थानों से निपट रहे हैं तो यह विधि सर्वोत्तम है। अन्यथा सरल सबस्ट्रिंग मिलान उपयोग-मामलों के लिए रेगेक्स की जटिलता और धीमी गति से बचा जाना चाहिए।

लेखक के बारे में

यह लेख जैकब स्टॉपक द्वारा लिखा गया था, जो एक सॉफ्टवेयर सलाहकार और डेवलपर हैं, जो कोड के माध्यम से दूसरों को उनके जीवन को बेहतर बनाने में मदद करने के जुनून के साथ हैं। जैकब इसके निर्माता हैं प्रारंभिक प्रतिबद्धता - जिज्ञासु डेवलपर्स को यह सीखने में मदद करने के लिए समर्पित एक साइट कि उनके पसंदीदा कार्यक्रमों को कैसे कोडित किया जाता है। इसका फीचर्ड प्रोजेक्ट लोगों की मदद करता है गिट सीखें कोड स्तर पर.

समय टिकट:

से अधिक स्टैकब्यूज