Python स्ट्रिङ खोज्ने ४ तरिका: in अपरेटरदेखि रेजेक्ससम्म

目次

1. परिचय

Python मा स्ट्रिङ्ग अपरेसनको महत्व

Python मा प्रोग्रामिङ गर्दा, स्ट्रिङ्गको अपरेसन दैनिक रूपमा आवश्यक पर्ने आधारभूत कौशल हो। स्ट्रिङ्गमा विशेष शब्द वा वाक्यांश समावेश छ कि छैन जाँच्ने अपरेसन डेटा प्रोसेसिङ, टेक्स्ट विश्लेषण, वेब स्क्र्यापिङ जस्ता विभिन्न परिस्थितिहरूमा प्रयोग हुन्छ। यस लेखमा, Python प्रयोग गरेर “स्ट्रिङ्गमा समावेश छ कि छैन” जाँच्ने चार प्रमुख तरिकाहरू प्रस्तुत गरिनेछ। यसले प्रोग्रामको दक्षता वृद्धि र त्रुटि रोकथाममा सहयोगी ज्ञान प्राप्त गर्न मद्दत पुर्याउँछ।

2. विधि 1: in अपरेटर प्रयोग गरेर सरल विधि

in अपरेटर के हो

Python मा, सबैभन्दा सरल विधि रूपमा in अपरेटर प्रयोग गरेर, विशेष स्ट्रिङ अर्को स्ट्रिङमा समावेश छ कि छैन जाँच गर्न सकिन्छ। यो विधि शुरुआतीहरूलाई पनि सजिलै बुझ्न सकिन्छ, र कोडको पढ्नयोग्यता अत्यन्त उच्च छ। in अपरेटरले लक्ष्य स्ट्रिङ समावेश भएमा True र नसमावेश भएमा False फिर्ता गर्छ।

उदाहरण प्रयोग

text = "Python is a versatile language."
print("versatile" in text)  # True
print("java" in text)  # False
उपरोक्त कोडमा, स्ट्रिङ"versatile" text मा समावेश छ कि छैन जाँच गरिन्छ, र समावेश भएको कारण True फिर्ता हुन्छ। अर्कोतर्फ, "java" समावेश छैन, त्यसैले False फिर्ता हुन्छ।

in अपरेटरको फाइदा र बेफाइदा

फाइदा
  • कोड छोटो छ, र सहज रूपमा बुझ्न सकिन्छ।
  • परिणाम तर्क मान (True वा False) को रूपमा फिर्ता हुन्छ, जसले सर्त वाक्यमा प्रयोग गर्न सजिलो बनाउँछ।
बेफाइदा
  • आंशिक मिलान वा ठूलो/सानो अक्षरको फरक गर्ने अवस्थामा उपयुक्त छैन।
  • साधारण खोजीमा उपयोगी छ, तर स्थान जानकारी वा जटिल ढाँचामा समर्थन छैन।

3. विधि 2: find() मेथडले इन्डेक्स प्राप्त गर्ने तरिका

find() मेथड के हो

find() मेथड स्ट्रिङभित्र विशेष स्ट्रिङ पहिलो पटक देखा पर्ने स्थान (इन्डेक्स) फिर्ता गर्ने कार्य हो। यो मेथडले भेटिएमा 0 वा सोभन्दा माथिको इन्डेक्स फिर्ता गर्छ, नपाएमा -1 फिर्ता गर्छ। ठूलो अक्षर र सानो अक्षरलाई फरक मान्ने कारण, आवश्यक परे समायोजन गर्नुपर्छ।

उदाहरण प्रयोग

text = "apple, orange, banana"
index = text.find("orange")
print(index)  # 7
यस उदाहरणमा, स्ट्रिङ "orange" स्ट्रिङ text भित्र 7 औं स्थानमा देखा पर्छ, त्यसैले 7 फिर्ता हुन्छ। यदि "grape" खोजेमा, नपाए कारण -1 फिर्ता हुन्छ।

प्रयोग: ठूलो र सानो अक्षरलाई बेवास्ता गर्ने

ठूलो र सानो अक्षरलाई बेवास्ता गरेर खोज्न चाहनुहुन्छ भने, lower() मेथडसँग मिलाएर सम्पूर्ण स्ट्रिङलाई सानो अक्षरमा परिवर्तन गरी खोज्न सकिन्छ।
text = "Python is Great"
index = text.lower().find("great")
print(index)  # 10

find() मेथडका फाइदा र बेफाइदा

फाइदा
  • सबस्ट्रिङको पहिलो देखिने स्थान प्राप्त गर्न सकिने कारण, स्थान जानकारी प्रयोग गरेर कार्यहरू सम्भव हुन्छ।
  • सरल र प्रयोग गर्न सजिलो।
बेफाइदा
  • ठूलो र सानो अक्षरलाई फरक मान्ने कारण, एकरूपता चाहनुहुन्छ भने अलग प्रक्रिया आवश्यक पर्छ।
  • पहिले भेटिएको भाग मात्र लक्षित हुन्छ, धेरै स्थानमा मिलान हुने अवस्थामा समर्थन छैन।

4. विधि 3: rfind() मेथडले अन्तिम देखा पर्ने स्थान खोज्ने

rfind() मेथड के हो

rfind() मेथडले स्ट्रिङको दायाँपट्टि खोजी गरी, पहिलो भेटिएको स्ट्रिङको इन्डेक्स फिर्ता गर्छ। यो मेथडले बायाँबाट खोजी गर्ने find() को विपरीत कार्य गर्दछ। rfind() पनि नपाएमा -1 फिर्ता गर्छ।

उदाहरण

text = "apple, orange, apple, banana"
index = text.rfind("apple")
print(index)  # 14
यस उदाहरणमा, अन्तिम देखिने "apple" को इन्डेक्स 14 फिर्ता हुन्छ। find() भन्दा फरक, दायाँबाट खोजी गर्ने कारणले अन्तिमको apple फिर्ता हुन्छ।

rfind() मेथडको अनुप्रयोग

rfind() मेथडले, विशेष ढाँचा धेरै पटक देखिएमा, अन्तिम देखिने भाग मात्र सञ्चालन गर्न चाहँदा उपयोगी हुन्छ। उदाहरणका लागि, लग फाइल वा लामो पाठमा, अन्तिम देखिने त्रुटि वा कुञ्जीशब्द पहिचान गर्न चाहँदा प्रयोग गर्न सकिन्छ।

rfind() मेथडको फाइदा र बेफाइदा

फाइदा
  • अन्तिम देखिने उपस्ट्रिङ पहिचान गर्दा उपयोगी।
  • ठूलो आकारको पाठ विश्लेषण वा लग प्रोसेसिङमा प्रयोग गर्न सकिन्छ।
बेफाइदा
  • एकै पटक धेरै देखिने स्थानहरू प्राप्त गर्न सकिँदैन।
年収訴求

5. विधि4: रेग्युलर एक्सप्रेशन(re.search()) प्रयोग गरेर उन्नत खोज

रेग्युलर एक्सप्रेशन के हो

रेग्युलर एक्सप्रेशन(Regex) स्ट्रिङको प्याटर्न मिलान गर्नको लागि एक शक्तिशाली उपकरण हो। Python मा, re मोड्युल प्रयोग गरेर रेग्युलर एक्सप्रेशन द्वारा खोज सम्भव छ। विशेष प्याटर्न फेला पार्न वा आंशिक मिलानलाई लचिलो रूपमा गर्न उपयोगी हुन्छ।

उदाहरण प्रयोग: re.search()

import re
text = "apple, orange, banana"
match = re.search(r"ora[a-z]*", text)
if match:
    print(match.group())  # orange
यस उदाहरणमा, "ora" बाट सुरु हुने, त्यसपछि सानो अक्षरको अल्फाबेटको अक्षरहरू समावेश गर्ने शब्द (यस केसमा "orange") खोजी गरिएको छ। रेग्युलर एक्सप्रेशन प्रयोग गरेर, अझ लचिलो खोज सम्भव हुन्छ।

अनुप्रयोग उदाहरण: बहु प्याटर्न खोज

यदि तपाईँले एकै समयमा धेरै प्याटर्न खोज्न चाहनुहुन्छ भने, re मोड्युल प्रयोग गरेर विभिन्न प्याटर्न निर्दिष्ट गर्न सकिन्छ। उदाहरणका लागि, अंक वा विशेष चिन्हहरू समावेश भएको स्ट्रिङ खोज्दा उपयोगी हुन्छ।
match = re.search(r"d+", "apple 123 banana")
if match:
    print(match.group())  # 123

रेग्युलर एक्सप्रेशनका फाइदा र बेफाइदा

फाइदा
  • जटिल प्याटर्न वा आंशिक मिलानलाई लचिलो रूपमा प्रक्रिया गर्न सकिन्छ।
  • ठूलो स्तरको पाठ विश्लेषण वा डेटा प्याटर्न निकाल्न उपयुक्त।
बेफाइदा
  • रेग्युलर एक्सप्रेशनको सिन्ट्याक्स कठिन छ, नयाँ प्रयोगकर्ताहरूका लागि सिकाइ लागत उच्च हुन्छ।
  • प्रक्रिया गति केही अवस्थामा धीमा हुन सक्छ।

6. प्रत्येक मेथडको तुलना र प्रयोगको विभाजन

तुलनात्मक तालिका

विधिप्रक्रिया विवरणफाइदाकमजोरी
inउपशब्दको उपस्थिति/अनुपस्थितिसरल र छिटोवडि/सानो अक्षरको फरक हुन्छ
find()इन्डेक्स खोजीआंशिक मिलान, स्थान जानकारी प्राप्त गर्न सकिन्छपहिलो देखिने स्थान मात्र
rfind()दायाँबाट खोजीअन्तिम देखिने स्थान प्राप्त गर्नुअन्तिम देखिने स्थान मात्र
re.search()रेगुलर एक्सप्रेशन प्रयोगलचिलो र जटिल ढाँचाको मिलान सम्भवशिक्षण लागत उच्च, गति सुस्त हुन्छ

सिफारिस गरिएका प्रयोगका परिस्थितिहरू

  • सरल खोजीको लागिin अपरेटर।
  • आंशिक मिलानको स्थान प्राप्त गर्नfind() वाrfind() प्रयोग गर्नुहोस्।
  • जटिल खोजीको लागि रेगुलर एक्सप्रेशन।

7. सारांश

Python मा स्ट्रिङ्गमा कुनै पाठ समावेश छ कि छैन जाँच्ने विभिन्न तरिकाहरू उपलब्ध छन्, साधारणदेखि उन्नत सम्म। यस लेखमा, in अपरेटर, find(), rfind(), र रेगुलर एक्सप्रेशनको re.search() बारे विस्तृत रूपमा व्याख्या गरिएको छ। प्रत्येक विधिको आफ्नै फाइदा र बेफाइदा छन्, र तिनीहरूलाई उपयुक्त रूपमा प्रयोग गर्न आवश्यक छ।
  • साधारण खोजका लागिin अपरेटर।
  • आंशिक मिलानको स्थितिको प्राप्तिका लागिfind() वा rfind()
  • जटिल खोजका लागि रेगुलर एक्सप्रेशन।
पाठकहरूका प्रोग्राममा कुन विधि प्रयोग गर्ने, परिस्थितिको आधारमा उपयुक्त चयन गरी, प्रभावकारी रूपमा स्ट्रिङ्ग खोज गरौं। यदि प्रश्न वा विचारहरू छन् भने, कृपया टिप्पणी बक्समा साझा गर्नुहोस्!