दिलचस्प पोस्ट
jQuery में किसी संख्या में अल्पविराम जोड़ें समस्या वापस JSON मूल्य Regex का उपयोग कर एक सबस्ट्रिंग निकालने का तरीका डेटाबेस कब और क्यों महंगे हो? कैसे सी # में एक फ़ाइल को पढ़ने और लिखने के लिए निजी और संरक्षित सदस्य: सी ++ विम में एक नई लाइन द्वारा एक चरित्र को कैसे बदलना है? कैसे "HTML" का विकल्प चुनें? कमांड प्रॉम्प्ट में सी # स्रोत फ़ाइल को संकलित करना / निष्पादित करना एंड्रॉइड एपीआई 21 टूलबार पट्टी git शाखा, कांटा, फ़ेच, मर्ज, रीबेस और क्लोन, अंतर क्या हैं? आईएसओ 7 पर स्थिति पट्टी पृष्ठभूमि रंग और पाठ रंग कैसे बदल सकता है? बहुत बड़ी टेक्स्ट फ़ाइल की अंतिम 10 लाइनें प्राप्त करें> 10 जीबी जावा में वाष्पशील बनाम स्थिर पीआईवीओटी में एसक्यूएल 2005

पहला मैच रोकने के लिए नियमित अभिव्यक्ति

मेरा रेगेक्स पैटर्न कुछ जैसा दिखता है

<xxxx location="file path/level1/level2" xxxx some="xxx"> 

मुझे इस स्थान में केवल स्थान पर लगाए गए उद्धरण चिह्नों में दिलचस्पी है क्या यह लालची स्विच के नीचे जितना आसान नहीं होना चाहिए?

 /.*location="(.*)".*/ 

काम करने के लिए प्रतीत नहीं होता है

वेब के समाधान से एकत्रित समाधान "पहला मैच रोकने के लिए नियमित अभिव्यक्ति"

आपको अपने नियमित अभिव्यक्ति को गैर-लालची बनाने की जरूरत है, क्योंकि डिफ़ॉल्ट रूप से "(.*)" सभी "file path/level1/level2" xxx some="xxx" से मिलान होगा।

इसके बजाय आप अपने डॉट-स्टार को गैर-लालची बना सकते हैं, जो इसे संभव के रूप में कुछ वर्णों के साथ मिलेंगे:

 /location="(.*?)"/ 

एक जोड़ना ? क्वांटफ़ायर ( ? , * या + ) पर यह गैर-लालची बनाता है

location="(.*)" location= बाद " some="xxx बाद जब तक आप इसे गैर-लालची बनाते हैं, तब तक मेल खाएंगे। तो आपको या तो ज़रूरत पड़ती है .*? (यानी इसे गैर-लालची बनाना) या बेहतर जगह .* साथ [^"]*

कैसा रहेगा

 .*location="([^"]*)".* 

यह। * के साथ असीमित खोज से बचा जाता है और पहले बोली के साथ बिल्कुल मेल खाएगा।

गैर-लालची मिलान का उपयोग करें, यदि आपका इंजन इसका समर्थन करता है। जोड़ें ? कैप्चर के अंदर

 /location="(.*?)"/