Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में टेक्स्ट कैसे खोजें और बदलें?

समस्या

आप स्ट्रिंग में टेक्स्ट पैटर्न को खोजना और बदलना चाहते हैं।

यदि हमारे पास एक बहुत ही सरल शाब्दिक पैटर्न है, तो str.replace() विधि का उपयोग करना एक इष्टतम समाधान है।

उदाहरण

def sample():
yield 'Is'
yield 'USA'
yield 'Colder'
yield 'Than'
yield 'Canada?'

text = ' '.join(sample())
print(f"Output \n {text}")

आउटपुट

Is USA Colder Than Canada?

आइए पहले देखें कि टेक्स्ट को कैसे खोजा जाता है।

# search for exact text
print(f"Output \n {text == 'USA'}")

आउटपुट

False

हम मूल स्ट्रिंग विधियों का उपयोग करके पाठ की खोज कर सकते हैं, जैसे कि str.find (), str.endswith (), str.startswith ()।

# text start with
print(f"Output \n {text.startswith('Is')}")

आउटपुट

True
# text ends with
print(f"Output \n {text.startswith('Is')}")

आउटपुट

True
# search text with find
print(f"Output \n {text.find('USA')}")

आउटपुट

3

यदि खोज के लिए इनपुट टेक्स्ट अधिक जटिल है तो हम रेगुलर एक्सप्रेशन और पुनः मॉड्यूल का उपयोग कर सकते हैं।

# Let us create a date in string format
date1 = '22/10/2020'
# Let us check if the text has more than 1 digit.
# \d+ - match one or more digits
import re
if re.match(r'\d+/\d+/\d+', date1):
print('yes')
else:
print('no')
yes

अब, पाठ को बदलने के लिए वापस आ रहे हैं। यदि टेक्स्ट और बदलने के लिए स्ट्रिंग सरल है तो str.replace() का उपयोग करें।

आउटपुट

print(f"Output \n {text.replace('USA', 'Australia')}")

आउटपुट

Is Australia Colder Than Canada?

यदि खोज और बदलने के लिए जटिल पैटर्न हैं तो हम पुनः मॉड्यूल में उप () विधियों का लाभ उठा सकते हैं।

उप () के लिए पहला तर्क मिलान करने के लिए पैटर्न है और दूसरा तर्क प्रतिस्थापन पैटर्न है।

नीचे दिए गए उदाहरण में, हम दिनांक फ़ील्ड को dd/mm/yyyy में पाएंगे और उन्हें प्रारूप में बदल देंगे - yyyy-dd-mm। बैकस्लैश किए गए अंक जैसे \3 पैटर्न में समूह संख्याओं को कैप्चर करने के लिए देखें

import re
sentence = 'Date is 22/11/2020. Tommorow is 23/11/2020.'
# sentence
replaced_text = re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', sentence)
print(f"Output \n {replaced_text}")

आउटपुट

Date is 2020-22-11. Tommorow is 2020-23-11.

करने का एक अन्य तरीका बेहतर प्रदर्शन प्राप्त करने के लिए पहले अभिव्यक्ति को संकलित करना है।

आउटपुट

pattern = re.compile(r'(\d+)/(\d+)/(\d+)')
replaced_pattern = pattern.sub(r'\3-\1-\2', sentence)
print(f"Output \n {replaced_pattern}")

आउटपुट

Date is 2020-22-11. Tommorow is 2020-23-11.

re.subn() हमें टेक्स्ट को बदलने के साथ-साथ किए गए प्रतिस्थापनों की संख्या देगा।

आउटपुट

output, count = pattern.subn(r'\3-\1-\2', sentence)
print(f"Output \n {output}")

आउटपुट

Date is 2020-22-11. Tommorow is 2020-23-11.

आउटपुट

print(f"Output \n {count}")

आउटपुट

2

  1. पायथन में किसी लेबल से टेक्स्ट कैसे निकालें?

    Tkinter एक पायथन लाइब्रेरी है जिसका उपयोग GUI- आधारित एप्लिकेशन बनाने और विकसित करने के लिए किया जाता है। इस लेख में, हम देखेंगे कि किसी लेबल से टेक्स्ट को कैसे हटाया जाए, जिसमें कुछ टेक्स्ट होगा। किसी लेबल से टेक्स्ट हटाने के लिए, हम एक संबद्ध बटन बनाएंगे जो लेबल के लिए ट्रिगर के रूप में कार्य करे

  1. विंडोज 10 पर नोटपैड में टेक्स्ट कैसे खोजें और बदलें

    यदि आपको नोटपैड में किसी शब्द या वाक्यांश को खोजने और बदलने की आवश्यकता है, तो आप नोटपैड में टेक्स्ट ढूंढने और बदलने के लिए इस चरण-दर-चरण मार्गदर्शिका का उपयोग कर सकते हैं विंडोज 10 पर। इस गाइड की मदद से कई शब्दों या वाक्यांशों को खोजना और बदलना संभव है। कुछ मुफ्त नोटपैड विकल्प, आपको इसे आसानी से क

  1. क्रोम और फ़ायरफ़ॉक्स में टेक्स्ट कैसे खोजें और बदलें

    एक ब्राउज़र, जैसा कि इसके नाम का तात्पर्य है, वेब ब्राउज़ करने के लिए है। यह एक टेक्स्ट एडिटर के रूप में उपयोग करने के लिए नहीं है। इसलिए आपको ब्राउजर में टेक्स्ट-एडिटिंग फीचर्स जैसे फाइंड एंड रिप्लेस टेक्स्ट विरले ही मिलते हैं। हालाँकि, कई बार आप अपना ब्लॉग पोस्ट लिख रहे होते हैं, एक टिप्पणी टाइप