नियमित अभिव्यक्तियों के साथ स्ट्रिंग्स से फ़्लोटिंग-पॉइंट मान निकालना
एक स्ट्रिंग से दोगुना मान निकालने के कार्य पर विचार करें। नियमित अभिव्यक्ति का उपयोग करके इसे प्राप्त करने के लिए, निम्नलिखित चरण शामिल हैं:
Regexp का निर्माण करें:
import re
pattr = re.compile(???)
x = pattr.match("4.5")
पर्ल-संगत रेगुलर एक्सप्रेशन का उपयोग करें:
फ़्लोटिंग-पॉइंट निकालने के लिए पर्ल दस्तावेज़ से एक उपयुक्त 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
$""")
मिलान ढूंढें और पुनर्प्राप्त करें:
दोहरा मान निकालने के लिए, संकलित regexp को वांछित स्ट्रिंग पर लागू करें:
m = re_float.match("4.5")
print(m.group(0))
यह आउटपुट देगा:
4.5
एक स्ट्रिंग से एकाधिक मान निकालें:
एक बड़ी स्ट्रिंग से एकाधिक फ़्लोटिंग-पॉइंट मान निकालने के लिए, 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']
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3