पायथन में regex.compile () तर्क में विभिन्न उपसर्ग [डुप्लिकेट] - पायथन, regex

लिखते समय re.compile, मैंनें इस्तेमाल किया r कई बार उपसर्ग (re.compile(r"(xyx))। हालाँकि, मैंने देखा है (re.compile(f"(xyx)) पहली बार और मुझे यकीन नहीं है कि यह क्या कर रहा है। आउटपुट का मेरे लिए कोई मतलब नहीं है। क्या कोई कृपया बता सकता है कि यह क्या है f यहाँ क्या कर रहा है

import re, string
re_tok = re.compile(f"([{string.punctuation}“”¨«»®´·º½¾¿¡§£₤‘’])")
def tokenize(s):
return re_tok.sub(r" 1 ", s).split()


>>> tokenize("˚∆˙©∆©˙¬ ldgkl slgh lshsg ieh 954n bvery590oerfdb o3pg")

उत्तर:

उत्तर № 1 के लिए 1

एक स्वरूपित स्ट्रिंग शाब्दिक या एफ-स्ट्रिंग एक स्ट्रिंग शाब्दिक है जो "एफ" या "एफ" के साथ उपसर्ग है।

इन तारों में प्रतिस्थापन फ़ील्ड शामिल हो सकते हैं, जो घुंघराले ब्रेस {} द्वारा चित्रित किए गए हैं।

जबकि अन्य स्ट्रिंग शाब्दिकों का हमेशा एक स्थिर मूल्य होता है, स्वरूपित तार वास्तव में रन समय पर मूल्यांकन किए जाते हैं।

इस मामले में:

चारों ओर घुंघराले कोष्ठक "string.punctuation`` are a replacement field, i.e. the string is to be formatted withस्ट्रिंग.विराम चिह्न, which, in Python, is a "string of ASCII characters which are considered punctuation marks in theC` लोकेल ”।

अधिक जानने के लिए, देखें इन अजगर डॉक्स और string.punctuation संदर्भ :-)


उत्तर № 2 के लिए 1

के अनुसार पायथन दस्तावेज:

2.4.3। स्वरूपित स्ट्रिंग शाब्दिक

संस्करण 3.6 में नया।

एक स्वरूपित स्ट्रिंग शाब्दिक या एफ-स्ट्रिंग एक स्ट्रिंग शाब्दिक है के साथ उपसर्ग किया "f" या "F"। इन तारों में प्रतिस्थापन हो सकता है फ़ील्ड, जो घुंघराले ब्रेस द्वारा चित्रित किए गए हैं {}। जबकि अन्य स्ट्रिंग शाब्दिक में हमेशा एक स्थिर मान होता है, स्वरूपित तार रन टाइम में वास्तव में अभिव्यक्ति का मूल्यांकन किया जाता है।

प्रलेखन में कई उदाहरण हैं, इसलिए मैं उनमें से कुछ को पोस्ट करूँगा और समझाऊंगा:

name = "Fred"
f"He said his name is{name!r}."
# "He said his name is "Fred".

यहां ही ! एक रूपांतरण क्षेत्र का परिचय देता है। !r कॉल repr()

इसके बाद परिणाम को स्वरूपित किया जाता है format() मसविदा बनाना। प्रारूप विनिर्देशक को पास किया जाता है __format__() अभिव्यक्ति या रूपांतरण परिणाम की विधि। प्रारूप निर्दिष्ट छोड़ दिए जाने पर एक रिक्त स्ट्रिंग पास की जाती है। तब स्वरूपित परिणाम पूरे स्ट्रिंग के अंतिम मूल्य में शामिल होता है।

चूँकि यह फ़ॉर्मेट किया हुआ है format() प्रोटोकॉल, निम्नलिखित अन्य उपयोग के मामले हैं:

width = 10
precision = 4
value = decimal.Decimal("12.34567")
f"result: {value:{width}.{precision}}"
# result:      12.35

यहां तक ​​कि समसामयिक वस्तुएँ:

today = datetime(year=2017, month=1, day=27)
f"{today:%B %d, %Y}"
# January 27, 2017

उपरोक्त जानकारी लेते हुए, इसे अपने कोड पर लागू करें:

f"([{string.punctuation}“”¨«»®´·º½¾¿¡§£₤‘’])"

ऊपर की लाइन इंसर्ट कर रही है string.punctuation उस स्थान पर स्ट्रिंग में।

दस्तावेज़ों के मुताबिक, string.punctuation है:

ASCII वर्णों का स्ट्रिंग जिसे विराम चिह्न वर्ण माना जाता है C लोकेल।

यदि आप वास्तव में इस में गहरी खुदाई करना चाहते हैं: क्या है C लोकेल?

सी मानक एक के रूप में स्थान को परिभाषित करता हैप्रोग्राम-व्यापी संपत्ति जो बदलने के लिए अपेक्षाकृत महंगी हो सकती है। उसके ऊपर, कुछ कार्यान्वयन इस तरह से टूट जाते हैं कि बार-बार स्थानीय परिवर्तन से कोर डंप हो सकता है। यह सही तरीके से उपयोग करने के लिए स्थान को कुछ दर्दनाक बनाता है।

प्रारंभ में, जब कोई कार्यक्रम शुरू किया जाता है, तो लोकेल होता है C स्थानीय, कोई फर्क नहीं पड़ता कि उपयोगकर्ता का पसंदीदा स्थान क्या है।


उत्तर № 3 के लिए 1

वे विभिन्न ध्वज हैं जो स्ट्रिंग शाब्दिक व्यवहार को संशोधित करते हैं r कच्चे तार का मतलब है और f स्ट्रिंग प्रक्षेप के लिए है

PEP से स्पष्टीकरण देखें:

एफ-स्ट्रिंग अभिव्यक्ति को एम्बेड करने का एक तरीका प्रदान करते हैंएक न्यूनतम वाक्यविन्यास का उपयोग करके स्ट्रिंग शाब्दिक के अंदर। यह ध्यान दिया जाना चाहिए कि एफ-स्ट्रिंग वास्तव में एक रन टाइम पर मूल्यांकन किया गया अभिव्यक्ति है, न कि निरंतर मूल्य। पायथन स्रोत कोड में, एक एफ-स्ट्रिंग एक शाब्दिक स्ट्रिंग है, जिसे "एफ" के साथ उपसर्ग किया जाता है, जिसमें ब्रेसिज़ के अंदर अभिव्यक्ति होती है। भावों को उनके मूल्यों से बदल दिया जाता है। कुछ उदाहरण निम्न हैं:

>>> import datetime
>>> name = "Fred"
>>> age = 50
>>> anniversary = datetime.date(1991, 10, 12)
>>> f"My name is {name}, my age next year is {age+1}, my anniversary is {anniversary:%A, %B %d, %Y}."
"My name is Fred, my age next year is 51, my anniversary is Saturday, October 12, 1991."
>>> f"He said his name is {name!r}."
"He said his name is "Fred"."

https://www.python.org/dev/peps/pep-0498/

और अजगर डॉक्स:

के बारे में r

दोनों स्ट्रिंग और बाइट्स शाब्दिक वैकल्पिक रूप से हो सकते हैंएक पत्र "आर" या "आर" के साथ उपसर्ग; इस तरह के तारों को कच्चे तार कहा जाता है और बैकस्लैश को शाब्दिक वर्ण माना जाता है। नतीजतन, स्ट्रिंग शाब्दिक में, "यू" और "यू" कच्चे तारों में बच जाते हैं, विशेष रूप से व्यवहार नहीं किया जाता है। यह देखते हुए कि पायथन 2.x के कच्चे यूनिकोड शाब्दिक रूप से पायथन 3.x से भिन्न व्यवहार करते हैं, "उर" वाक्यविन्यास समर्थित नहीं है।

https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals

के बारे में f

एक स्वरूपित स्ट्रिंग शाब्दिक या एफ-स्ट्रिंग एक हैस्ट्रिंग शाब्दिक जो "एफ" या "एफ" के साथ उपसर्ग है। इन तारों में प्रतिस्थापन फ़ील्ड शामिल हो सकते हैं, जो घुंघराले ब्रेस {} द्वारा चित्रित किए गए हैं। जबकि अन्य स्ट्रिंग शाब्दिकों का हमेशा एक स्थिर मूल्य होता है, स्वरूपित तार वास्तव में रन समय पर मूल्यांकन किए जाते हैं।

https://docs.python.org/3/reference/lexical_analysis.html#f-strings


जवाब के लिए 0 № 4

यह सिर्फ पायथन का नया है शाब्दिक स्ट्रिंग प्रक्षेप (एफ स्ट्रिंग्स)के रूप में उपलब्ध है पायथन 3.6


संबंधित सवाल
सबसे लोकप्रिय