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?

टेक्स्ट खोजने के तरीके:


# सटीक टेक्स्ट खोजें
print(f"Output \n {text == 'USA'}")

आउटपुट: False


# बेसिक स्ट्रिंग मेथड्स का उपयोग करें
print(f"Output \n {text.startswith('Is')}")  # True
print(f"Output \n {text.endswith('Canada?')}")  # True
print(f"Output \n {text.find('USA')}")  # 3 (इंडेक्स)

जटिल पैटर्न के लिए रेगुलर एक्सप्रेशन्स (re मॉड्यूल)


import re

# डेट स्ट्रिंग फॉर्मेट में बनाएं
date1 = '22/10/2020'

# जांचें कि टेक्स्ट में एक से अधिक डिजिट हैं
# \d+ - एक या अधिक डिजिट से मिलान
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?

जटिल पैटर्न के लिए re.sub()

sub() का पहला आर्गुमेंट मिलान करने का पैटर्न है और दूसरा आर्गुमेंट रिप्लेसमेंट पैटर्न है।

नीचे उदाहरण में, हम dd/mm/yyyy फॉर्मेट में डेट फील्ड ढूंढेंगे और उन्हें yyyy-dd-mm फॉर्मेट में बदलेंगे। बैकस्लैश्ड डिजिट्स जैसे \3 पैटर्न में कैप्चर ग्रुप नंबर्स को संदर्भित करते हैं।


import re

sentence = 'Date is 22/11/2020. Tommorow is 23/11/2020.'
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}")
print(f"Output \n {count}")

आउटपुट: Date is 2020-22-11. Tommorow is 2020-23-11.
2

  1. Python में Label से Text कैसे Remove करें? Python में Label से Text कैसे Remove करें?

    Tkinter GUI-based applications बनाने और develop करने के लिए एक Python library है। इस लेख में, हम देखेंगे कि कुछ text वाले Label से text कैसे remove करें। Label से text remove करने के लिए, हम एक associated button बनाएंगे जो Label के लिए trigger के रूप में कार्य करेगा। उदाहरण # Import Tkinter Library

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

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

  1. Chrome और Firefox में टेक्स्ट ढूंढें और बदलें Chrome और Firefox में टेक्स्ट ढूंढें और बदलें

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