दिलचस्प पोस्ट
HTTP प्रतिक्रिया भेजने के बाद PHP निष्पादन जारी रखें नियंत्रक में रेक कार्य को चलाएं जावास्क्रिप्ट में लूप के लिए एक एसिंक्रोनस फंक्शन को कॉल करना ट्यूपल या फ़्रीडीक टेम्पलेट पैरामीटर से सरणी प्रारंभकर्ता बनाना SQL सर्वर 2005 कैसे एक अनूठा प्रतिबंध बनाएँ? Django गतिशील मॉडल फ़ील्ड संपादन टेक्स्ट: पाठ चयन हेंडलर क्लिक ईवेंट पर पेस्ट / बदलें मेनू पॉप-अप अक्षम करें jQuery मोबाइल: डेटा को एक पृष्ठ से दूसरी ओर भेजा जा रहा है सीएसवी फ़ाइल को पार्स करने के लिए विंडोज बैच स्क्रिप्ट और टेक्स्ट फ़ाइल आउटपुट करती है जावा में ट्रिटी टर्नरी ऑपरेटर – ऑटोबॉक्सिंग एक कस्टम बनाने का सही तरीका क्या है। NET अपवाद सीरिजलाजनीय है? जीआईटी को स्वचालित बनाने से पहले सफेद स्थान को पीछे छोड़ दें मैं शुद्ध जावास्क्रिप्ट में एक माउसओवर कैसे अनुकरण करता हूं जो सीएसएस ": होवर" को सक्रिय करता है? Word से VBA के साथ http अनुरोध भेज रहा है सामग्री संपादन योग्य डिवा में कर्सर पर टेक्स्ट डालें

क्या नियमित अभिव्यक्ति में एक काउंटर वेरिएबल की तरह कुछ है?

अगर मेरे पास बहुत सारे मैचों हैं, उदाहरण के लिए मल्टी लाइन मोड में, और मैं उन्हें मैच के साथ-साथ एक काउंटर नंबर के साथ बदलना चाहता हूं जो बढ़ता है।

मैं सोच रहा था कि क्या किसी भी regex स्वाद में इस तरह के एक चर है मैं एक नहीं मिल सका, लेकिन मुझे लगता है कि ऐसा कुछ याद रखना है …

मैं भाषाओं को स्क्रिप्ट करने के बारे में बात नहीं कर रहा हूं, जिसमें आप प्रतिस्थापन के लिए कॉलबैक का उपयोग कर सकते हैं। इसके बारे में यह RegexBuddy, उदात्त पाठ, gskinner.com/RegExr, जैसे उपकरणों में करने में सक्षम होने के बारे में है … उसी तरह से आप \ 1 या $ 1 के साथ कब्जा किए गए सबस्ट्रिंग का संदर्भ ले सकते हैं।

Solutions Collecting From Web of "क्या नियमित अभिव्यक्ति में एक काउंटर वेरिएबल की तरह कुछ है?"

फैंसी रेगेक्स के बारे में एफएमटीईवाईटीके

ठीक है, मैं सरल से उदात्त में जाने के लिए जा रहा हूँ। का आनंद लें!

सरल एस /// ई समाधान

अगर यह दिया रहे:

 #!/usr/bin/perl $_ = <<"End_of_G&S"; This particularly rapid, unintelligible patter isn't generally heard, and if it is it doesn't matter! End_of_G&S my $count = 0; 

फिर यह:

 s{ \b ( [\w']+ ) \b }{ sprintf "(%s)[%d]", $1, ++$count; }gsex; 

यह पैदा करता है

 (This)[1] (particularly)[2] (rapid)[3], (unintelligible)[4] (patter)[5] (isn't)[6] (generally)[7] (heard)[8], (and)[9] (if)[10] (it)[11] (is)[12] (it)[13] (doesn't)[14] (matter)[15]! 

अनॉन अर्रे सोल्यूशन में इंटरपोलेटेड कोड

जबकि यह:

 s/\b([\w']+)\b/#@{[++$count]}=$1/g; 

यह पैदा करता है:

 #1=This #2=particularly #3=rapid, #4=unintelligible #5=patter #6=isn't #7=generally #8=heard, #9=and #10=if #11=it #12=is #13=it #14=doesn't #15=matter! 

आरएचएस के बजाय एलएचएस में कोड के साथ समाधान

यह मैच के भीतर वृद्धि को बढ़ाता है:

 s/ \b ( [\w']+ ) \b (?{ $count++ }) /#$count=$1/gx; 

यह पैदावार:

 #1=This #2=particularly #3=rapid, #4=unintelligible #5=patter #6=isn't #7=generally #8=heard, #9=and #10=if #11=it #12=is #13=it #14=doesn't #15=matter! 

एक बड़बड़ा बड़बड़ा समाधान समाधान समाधान

इस

 s{ \b ( [\w'] + ) \b } { join " " => ($1) x ++$count }gsex; 

इस रमणीय उत्तर उत्पन्न करता है:

 This particularly particularly rapid rapid rapid, unintelligible unintelligible unintelligible unintelligible patter patter patter patter patter isn't isn't isn't isn't isn't isn't generally generally generally generally generally generally generally heard heard heard heard heard heard heard heard, and and and and and and and and and if if if if if if if if if if it it it it it it it it it it it is is is is is is is is is is is is it it it it it it it it it it it it it doesn't doesn't doesn't doesn't doesn't doesn't doesn't doesn't doesn't doesn't doesn't doesn't doesn't doesn't matter matter matter matter matter matter matter matter matter matter matter matter matter matter matter! 

सीमाओं की खोज

शब्द सीमाओं के लिए और अधिक मजबूत दृष्टिकोण हैं जो बहुवचन के लिए काम करते हैं (पिछले दृष्टिकोण नहीं), लेकिन मुझे संदेह है कि आपके रहस्य को ++$count करने में निहित है, न कि बीमारियों के साथ।

मैं वास्तव में लोगों को यह बताना चाहती हूं कि \b वे नहीं हैं जो वे सोचते हैं। वे हमेशा सोचते हैं कि इसका मतलब है कि वहां सफेद स्थान या स्ट्रिंग के किनारे मौजूद हैं। वे इसे \w\W या \W\w संक्रमण के रूप में कभी नहीं सोचते हैं

 # same as using a \b before: (?(?=\w) (?<!\w) | (?<!\W) ) # same as using a \b after: (?(?<=\w) (?!\w) | (?!\W) ) 

जैसा कि आप देखते हैं, यह सशर्त है कि यह क्या छू रहा है। यही है (?(COND)THEN|ELSE) खंड के लिए है।

यह जैसी चीजों के साथ एक मुद्दा बन जाता है:

 $_ = qq('Tis Paul's parents' summer-house, isn't it?\n); my $count = 0; s{ (?(?=[\-\w']) (?<![\-\w']) | (?<![^\-\w']) ) ( [\-\w'] + ) (?(?<=[\-\w']) (?![\-\w']) | (?![^\-\w']) ) }{ sprintf "(%s)[%d]", $1, ++$count }gsex; print; 

जो सही प्रिंट करता है

 ('Tis)[1] (Paul's)[2] (parents')[3] (summer-house)[4], (isn't)[5] (it)[6]? 

यूनिकोड के बारे में चिंता करना

1960 के दशक के स्टाइल एएससीआईआई लगभग 50 साल पुराना है। जब भी आप किसी को लिखते हैं [az] देखते हैं, यह लगभग हमेशा गलत होता है, यह पता चला है कि डैश और उद्धरण चिह्नों जैसी चीजें पैटर्न में शाब्दिक रूप से नहीं दिखनी चाहिए, या तो जब हम उस पर हैं, तो आप संभवत: \w का उपयोग नहीं करना चाहते, क्योंकि इसमें संख्याएं और अंडरस्कोर भी शामिल हैं, न केवल वर्णमालाएं।

इस स्ट्रिंग की कल्पना करो:

 $_ = qq(\x{2019}Tis Ren\x{E9}e\x{2019}s great\x{2010}grandparents\x{2019} summer\x{2010}house, isn\x{2019}t it?\n); 

जो आपको use utf8 साथ एक शाब्दिक रूप use utf8 हो सकता है:

 use utf8; $_ = qq('Tis Renée's great‐grandparents' summer‐house, isn't it?\n); 

इस बार मैं पैटर्न पर थोड़ा अलग ढंग से जाता हूं, अपने निष्पादन से शब्दों की मेरी परिभाषा को अलग करने के लिए इसे और अधिक पठनीय और फिर से बनाए रखने की कोशिश करने के लिए:

 #!/usr/bin/perl -l use 5.10.0; use utf8; use open qw< :std :utf8 >; use strict; use warnings qw< FATAL all >; use autodie; $_ = q('Tis Renée's great‐grandparents' summer‐house, isn't it?); my $count = 0; s{ (?<WORD> (?&full_word) ) # the rest is just definition (?(DEFINE) (?<word_char> [\p{Alphabetic}\p{Quotation_Mark}] ) (?<full_word> # next line won't compile cause # fears variable-width lookbehind #### (?<! (?&word_char) ) ) # so must inline it (?<! [\p{Alphabetic}\p{Quotation_Mark}] ) (?&word_char) (?: \p{Dash} | (?&word_char) ) * (?! (?&word_char) ) ) ) # end DEFINE declaration block }{ sprintf "(%s)[%d]", $+{WORD}, ++$count; }gsex; print; 

उस कोड को चलाते समय यह उत्पन्न होता है:

 ('Tis)[1] (Renée's)[2] (great‐grandparents')[3] (summer‐house)[4], (isn't)[5] (it)[6]? 

ठीक है, इसलिए हो सकता है कि फैंसी रेगेक्स के बारे में बीन एफएमटीईवाईटीके हो, लेकिन क्या आप खुश नहीं हैं कि आपने पूछा? ☺