यह निर्धारित करने के लिए कि एक स्ट्रिंग एक अलग स्ट्रिंग में है या नहीं


107

मेरे पास एक उप-स्ट्रिंग है:

substring = "please help me out"

मेरे पास एक और स्ट्रिंग है:

string = "please help me out so that I could solve this"

मुझे कैसे पता चलेगा कि पायथन substringका stringउपयोग करने का एक सबसेट है ?

जवाबों:


169

साथ in: substring in string:

>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True

10
gosh, python बहुत मजबूत है, मुझे लगता था कि इसे करने के लिए एक फ़ंक्शन की आवश्यकता है, लेकिन यह एक ओओ
विंडसाउंड

मैं वास्तव में अजगर को सीखने के बाद जेएस सीख रहा था, इसके लिए आपको अन्य विवरणों और अन्य चीजों का भार जोड़ना होगा। इसलिए, मैं सिर्फ अपने आप को यह याद दिलाना चाहता था कि पायथन में यह कैसे किया गया है, इस जवाब ने मुझे खुद से कहा 'बेशक!', मेरा मतलब है कि पायथन में इस तरह की चीजें सिर्फ इतनी तुच्छ हैं कि आपने उन्हें कभी ज्यादा सोचा नहीं है! : पी
गेम्स ब्रेनियक

@ GameBrainiac वास्तव में, जेएस में ऐसा ही करने के लिए string.indexOf(substring) != -1, बस यहाँ
LasagnaAndroid

एक बार जब आप पाते हैं, स्ट्रिंग में हाँ सबस्ट्रिंग मौजूद है, तो आप यह कैसे पता लगा सकते हैं कि स्ट्रिंग किस स्थिति में है, और यदि स्ट्रिंग स्ट्रिंग में एक से अधिक बार है तो क्या होता है?
योशीसेरी

@yoshiserry अगर आप की स्थिति चाहते हैं substringमें stringहै, तो आप यो उपयोग चाहते string.index
मार्कोस

21
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
    # do something

(वैसे - एक चर का नाम न देने की कोशिश करें string, क्योंकि एक ही नाम के साथ पायथन मानक पुस्तकालय है। आप लोगों को भ्रमित कर सकते हैं यदि आप एक बड़ी परियोजना में ऐसा करते हैं, तो टकराव से बचना जैसे कि इसमें उतरना एक अच्छी आदत है।)


न केवल भ्रमित करें, बल्कि उस बिंदु के बाद स्ट्रिंग संदर्भित सभी चीज़ों को भी तोड़ दें।
rplnt

13

यदि आप एक सच्चे / गलत से अधिक की तलाश में हैं, तो आप पुनः मॉड्यूल का उपयोग करने के लिए सबसे उपयुक्त होंगे, जैसे:

import re
search="please help me out"
fullstring="please help me out so that I could solve this"
s = re.search(search,fullstring)
print(s.group())

s.group() स्ट्रिंग वापस करेगा "कृपया मेरी मदद करें"।


1
नियमित अभिव्यक्ति खोजों के बारे में अच्छी टिप।
रान्डेल कुक

एक हल्के नोट पर। यदि आप नियमित अभिव्यक्ति के साथ कुछ हल करने की कोशिश कर रहे हैं, तो आप दो समस्याओं को हल करने की कोशिश कर रहे हैं।
हसन इकबाल

10

सोचा था कि यदि आप इसे तकनीकी साक्षात्कार के लिए करना चाहते हैं तो मैं इसे जोड़ूंगा, जहां वे नहीं चाहते कि आप पायथन के अंतर्निहित फ़ंक्शन का उपयोग करें inया find, जो भयानक है, लेकिन ऐसा होता है:

string = "Samantha"
word = "man"

def find_sub_string(word, string):
  len_word = len(word)  #returns 3

  for i in range(len(string)-1):
    if string[i: i + len_word] == word:
  return True

  else:
    return False

2
अच्छा उदाहरण है, लेकिन आपकी पहचान गलत है। और चीजों को गति देने के लिए मैं if len(substring) > len(string) return Falseयह भी जांच करूंगा कि लूप रेंज बेहतर होनी चाहिए range(len(string)-len(substring))क्योंकि आपको स्ट्रिंग के अंतिम दो अक्षरों में तीन अक्षर का शब्द नहीं मिलेगा। (कुछ पुनरावृत्तियों बचाता है)।
AnyOneElse

9

लोगों ने उल्लेख किया string.find(), string.index()और string.indexOf()टिप्पणियों में, और मैं उन्हें यहाँ संक्षेप में बताता हूं ( पायथन डॉक्यूमेंटेशन के अनुसार ):

सबसे पहले एक string.indexOf()विधि नहीं है । Deviljho द्वारा पोस्ट किया गया लिंक दिखाता है कि यह एक जावास्क्रिप्ट फ़ंक्शन है।

दूसरा string.find()और string.index()वास्तव में एक विकल्प के सूचकांक को लौटाता है। एकमात्र अंतर यह है कि वे प्रतिस्थापन स्थिति को नहीं संभालते हैं: ए उठाते समय string.find()रिटर्न ।-1string.index()ValueError


5

आप खोज () विधि भी आजमा सकते हैं। यह निर्धारित करता है कि स्ट्रिंग स्ट्रिंग में होती है, या स्ट्रिंग के विकल्प में।

str1 = "please help me out so that I could solve this"
str2 = "please help me out"

if (str1.find(str2)>=0):
  print("True")
else:
  print ("False")


1
def find_substring():
    s = 'bobobnnnnbobmmmbosssbob'
    cnt = 0
    for i in range(len(s)):
        if s[i:i+3] == 'bob':
            cnt += 1
    print 'bob found: ' + str(cnt)
    return cnt

def main():
    print(find_substring())

main()

किसी दिए गए स्ट्रिंग में 'बॉब' को प्रतिस्थापित करना।
एविना के

0

इस विधि का उपयोग भी कर सकते हैं

if substring in string:
    print(string + '\n Yes located at:'.format(string.find(substring)))

0

यहां छवि विवरण दर्ज करें

खोज () का उपयोग करने के बजाय, एक आसान तरीका ऊपर के रूप में 'इन' का उपयोग है।

यदि 'सबस्ट्रिंग' 'str' में मौजूद है, तो यदि भाग निष्पादित करेगा अन्यथा भाग निष्पादित करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.