प्रश्न चिह्न के बाद रेगेक्स सब कुछ मेल खाता है?


125

मेरे पास याहू पाइप्स में एक फीड है और एक प्रश्न चिह्न के बाद सब कुछ मैच करना चाहता हूं।

अब तक मैं यह पता लगा चुका हूं कि प्रश्न चिह्न का उपयोग करके कैसे मिलान किया जाए।

\?

अब प्रश्न चिह्न के बाद / उसके बाद की सभी चीजों का मिलान करना है।


2
\?.*सब कुछ मेल खाता है (एक खाली स्ट्रिंग सहित) के बाद ?
खटिक

आप किस प्रोग्रामिंग भाषा का उपयोग कर रहे हैं?
मार्क बायर्स

1
जावा का उपयोग करने वालों के लिए, यह है"\\?"
CodyBugstein

जवाबों:


251
\?(.*)

आप पहले कैप्चर समूह की सामग्री चाहते हैं।


15
@ मर्क यदि आपको इसकी आवश्यकता है (भले ही यह प्रश्न पुराना है!), तो कृपया इसे उत्तर के रूप में चिह्नित करें।
पीटर VDE

5
@ डॉकोनिक को नहीं लगता कि यह हो रहा है :(
स्टार्कर

4
@Starkers तुम सही हो। ऐसा नहीं होगा। मार्क तब से नहीं है Feb 5 '11 at 10:41। हमारे द्वारा किए गए हर परिवर्तन को इंगित करना अभी भी अच्छा है। हो सकता है कि कोई स्वप्नदोष से इस ओर इशारा करते हुए सीखेगा।
डूटग्राफ

1
अंतिम प्रश्न चिह्न के बाद आप सामग्री पर कैसे कब्जा करेंगे? मैं इसके बाद से 'एंकर' करना चाहता हूं - मुझे यकीन नहीं है कि एंकर सही शब्द है।
बीकेएसपर्जन

2
@BKSpurgeon ने पहले ^। * \? ([^?] *) पर $
कैप्चर किया,

61

इसे इस्तेमाल करे:

\?(.*)

कोष्ठक एक कैप्चरिंग समूह है जिसका उपयोग आप उस स्ट्रिंग का हिस्सा निकालने के लिए कर सकते हैं जिसे आप रुचि रखते हैं।

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

एक अन्य विकल्प जिसका उपयोग आप कर सकते हैं यदि आपकी भाषा निश्चित चौड़ाई खोज का समर्थन करती है:

(?<=\?).*

ओह निश्चित चौड़ाई? क्या मैं इस तरह से कुछ के लिए एक नज़र पीछे कर सकता हूं? विषय: कोड, प्रोग्रामिंग, डिज़ाइन इसलिए मैं कोलन का चयन करना चाहता हूं और पंक्ति के अंत तक विषयों और फ़ाउडरों के cpaital T के पीछे देखना चाहता हूं? (इस मामले में पंक्ति का अंत "डिज़ाइन" है।
मार्क

@ मर्क: आप किस भाषा का उपयोग कर रहे हैं?
मार्क बायर्स

मैं याहू पाइप्स का उपयोग कर रहा हूं जो रेगेक्स को स्वीकार करता है। मुझे इस सवाल का जवाब मिल गया है और अब एक रेगेक्स की तलाश है जो एक बृहदान्त्र के पीछे 6 चार्ट का चयन करें और कई (सभी) आगे की ओर ..
मार्क

@ मर्क: मैंने आपके प्रश्नों की सूची की जाँच की लेकिन मैं आपका नया नहीं देखता। क्या आप वाकई इसे पोस्ट कर चुके हैं?
मार्क बायर्स

मैं इस नए प्रश्न को कुछ ही क्षणों में फिर से पूछूंगा। लगता है कि मेरे सवालों को अलग रखना सबसे अच्छा है और वास्तव में दोनों को एक ही समय में पूछना चाहिए। साभार
मार्क

36

साथ सकारात्मक lookbehind तकनीक:

(?<=\?).*

(हम यहां प्रश्नवाचक चिन्ह से पहले वाले पाठ की खोज कर रहे हैं)

Input: derpderp?mystring blahbeh
Output: mystring blahbeh

उदाहरण

मूल रूप ?<=से एक समूह निर्माण है, जिसमें किसी भी मैच से पहले बच गए प्रश्न-चिह्न की आवश्यकता होती है।

वे वास्तव में अच्छा प्रदर्शन करते हैं, लेकिन सभी कार्यान्वयन उनका समर्थन नहीं करते हैं।


13
\?(.*)$

यदि आप "" के बाद सभी वर्णों का मिलान करना चाहते हैं? आप किसी भी चार्ट से मिलान करने के लिए एक समूह का उपयोग कर सकते हैं, और आप पंक्ति के अंत को इंगित करने के लिए "$" चिह्न का बेहतर उपयोग करेंगे।


1
अधिकांश नियमित अभिव्यक्ति कार्यान्वयन में .डिफ़ॉल्ट रूप से नई पंक्ति वर्ण से मेल नहीं खाती है। नतीजतन, अभिव्यक्ति में लाइन चरित्र के अंत के बिना भी यह लाइन के अंत तक मेल खाएगा।
मार्क बायर्स

2

इस साइट को देखें: http://rubular.com/ मूल रूप से साइट आपको कुछ उदाहरण पाठ (जो आप अपनी साइट पर देख रहे हैं) दर्ज करने की अनुमति देता है और फिर जैसे ही आप नियमित अभिव्यक्ति का निर्माण करते हैं, यह इस बात को उजागर करेगा कि इसमें क्या मिलान किया जा रहा है रियल टाइम।


इसके लिए धन्यवाद, क्या आप जानते हैं कि एक बृहदान्त्र का मिलान कैसे किया जाता है? और बृहदान्त्र से पहले पात्रों की एक निश्चित राशि?
मार्क

/([a-zA-Z]{4}):/मैच Test: Welcomeऔर हड़पनेTest
ऑस्टिन लिन

0

str.replace(/^.+?\"|^.|\".+/, '');

यह कभी-कभी उपयोग करने के लिए खराब होता है जब आप यह चुनना चाहते हैं कि "" के बीच और क्या निकालना है और आप इसे एक स्ट्रिंग में दो बार से अधिक उपयोग नहीं कर सकते। यह सब करता है का चयन करें जो "" के बीच में नहीं है और इसे कुछ भी नहीं के साथ बदलें।

यहां तक ​​कि मेरे लिए यह थोड़ा भ्रमित करने वाला है, लेकिन बीमार इसे समझाने की कोशिश करते हैं। ^.+?( "तब तक कुछ भी नहीं) तब तक |/ या स्टॉप (अभी भी शोध का मतलब यह है कि वास्तव में इसका क्या मतलब है) तब तक / ^.जब तक 2 "का उपयोग करने से पहले कुछ भी नहीं चुना गया है ( |स्टॉप / एट)। और उसके बाद आने वाले सभी का चयन करें। +।


कृपया अपने कोड का विवरण जोड़ने पर विचार करें ताकि हम जान सकें कि यह क्या और क्यों करता है।
पिका द विजार्ड ऑफ द व्हेल्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.