"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्ट्रिंग्स से फ़्लोटिंग-पॉइंट मान निकालने के लिए रेगुलर एक्सप्रेशन का उपयोग कैसे किया जा सकता है?

स्ट्रिंग्स से फ़्लोटिंग-पॉइंट मान निकालने के लिए रेगुलर एक्सप्रेशन का उपयोग कैसे किया जा सकता है?

2024-11-09 को प्रकाशित
ब्राउज़ करें:354

How Can Regular Expressions Be Used to Extract Floating-Point Values from Strings?

नियमित अभिव्यक्तियों के साथ स्ट्रिंग्स से फ़्लोटिंग-पॉइंट मान निकालना

एक स्ट्रिंग से दोगुना मान निकालने के कार्य पर विचार करें। नियमित अभिव्यक्ति का उपयोग करके इसे प्राप्त करने के लिए, निम्नलिखित चरण शामिल हैं:

  1. Regexp का निर्माण करें:

    import re
    
    pattr = re.compile(???)
    x = pattr.match("4.5")
  2. पर्ल-संगत रेगुलर एक्सप्रेशन का उपयोग करें:
    फ़्लोटिंग-पॉइंट निकालने के लिए पर्ल दस्तावेज़ से एक उपयुक्त regexp मान है:

    re_float = re.compile("""(?x)
    ^
       [ -]?\ *      # an optional sign and space
       (             # integers or f.p. mantissas
           \d        # start with a ...
           (           # ? takes care of integers
               \.\d* # mantissa a.b or a.
           )?
          |\.\d      # mantissa .b
       )
       ([eE][ -]?\d )?  # optionally match an exponent
    $""")
  3. मिलान ढूंढें और पुनर्प्राप्त करें:
    दोहरा मान निकालने के लिए, संकलित regexp को वांछित स्ट्रिंग पर लागू करें:

    m = re_float.match("4.5")
    print(m.group(0))

    यह आउटपुट देगा:

    4.5
  4. एक स्ट्रिंग से एकाधिक मान निकालें:
    एक बड़ी स्ट्रिंग से एकाधिक फ़्लोटिंग-पॉइंट मान निकालने के लिए, findall() विधि का उपयोग करें:

    s = """4.5 abc -4.5 abc - 4.5 abc   .1e10 abc . abc 1.01e-2 abc 
        1.01e-.2 abc 123 abc .123"""
    print(re.findall(r"[ -]? *(?:\d (?:\.\d*)?|\.\d )(?:[eE][ -]?\d )?", s))

    यह निकाले गए मानों की एक सूची लौटाएगा, जिसमें शामिल हैं:

    ['4.5', '-4.5', '- 4.5', '  .1e10', ' 1.01e-2', '       1.01', '-.2', ' 123', ' .123']
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729482499 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3