स्ट्रिंग
aaaab
डालें और देखें कि कैसे निम्नलिखित regexes यह मेल:
Regex Submatches
group 1 group 2 group3
(a?)(a*)(ab) a aa ab
(a??)(a*)(ab) aaa ab
(a?+)(a*)(ab) a aa ab
(a*)(a?)(ab) aaa ab
(a*?)(a?)(ab) aaa ab
(a*+)(a?)(ab) aaaa <Match fails!>
(a+)(a*)(ab) aaa ab
(a+?)(a*)(ab) a aa ab
(a++)(a*)(ab) aaaa <Match fails!>
स्पष्टीकरण:
a?
की कोशिश करता एक a
मिलान करने के लिए, लेकिन यह तैयार है अगर यह आवश्यक है तो कुछ भी मिलान करने के लिए सफल होने के लिए पूरा मैच।
a??
कुछ भी मिलान करने का प्रयास नहीं करता है, लेकिन यह पूरे मैच के सफल होने के लिए एक a
से मेल खाने के लिए तैयार है।
a?+
एक a
से मेल खाने का प्रयास करता है। यदि यह ऐसा कर सकता है, तो यह वापस नहीं होगा, जो कि मैच के सफल होने के लिए जरूरी नहीं था। यदि यह a
से मेल नहीं खाता है, तो यह खुशी से कुछ भी मेल नहीं खाएगा, हालांकि।
a*
की कोशिश करता के रूप में यह कर सकते हैं के रूप में कई a
रों मिलान करने के लिए है, लेकिन यह कम a
रों मिलान करने के लिए, यहां तक कि कुछ भी नहीं तैयार है कि अगर उस के लिए पूरे मैच सफल होने के लिए आवश्यक है।
- कुछ भी मिलान करने की कोशिश नहीं करता है, लेकिन यह पूरे मैच के सफल होने के लिए बिल्कुल आवश्यक है, लेकिन यह अधिक आवश्यक नहीं है, लेकिन
a
एस से मिलान करने के लिए तैयार है।
a*+
जितना संभव हो उतना a
से मिलान करने का प्रयास करता है।यदि ऐसा हो सकता है, तो यह कम a
एस से मेल खाने के लिए नीचे होगा यदि समग्र मैच सफल होने के लिए आवश्यक था। यदि यह एक भी a
से मेल नहीं खाता है, तो यह खुशी से कुछ भी मेल नहीं खाएगा, हालांकि।
a+
जितना a
एस से मिलान करने की कोशिश करता है, लेकिन यह पूरे मैच के सफल होने के लिए आवश्यक है, तो कम a
एस (लेकिन कम से कम एक) से मेल खाने के लिए तैयार है।
a+?
केवल एक a
से मेल खाता है, लेकिन यह पूरे मैच के सफल होने के लिए बिल्कुल आवश्यक है जितना a
एस से मेल खाने के लिए तैयार है, लेकिन अधिक नहीं।
a++
जितना संभव हो उतना a
से मिलान करने का प्रयास करता है। यदि ऐसा हो सकता है, तो यह कम a
एस से मेल खाने के लिए नीचे होगा यदि समग्र मैच सफल होने के लिए आवश्यक था। यदि यह एक भी a
से मेल नहीं खाता है, तो regex विफल रहता है।
स्रोत
2013-01-15 22:22:13
क्यों? क्योंकि कहीं कहीं उनका उपयोग करता है? आपको वास्तव में रेगेक्स दस्तावेजों के माध्यम से पढ़ने के लिए समय निकालना होगा, और आईआरबी, या rubular.com का उपयोग करके चीजों को आजमाएं, देखें कि वे कैसे काम करते हैं, और याद रखें कि आपने भविष्य के लिए क्या सीखा। प्रोग्राम में बहुत सी सीखना मामूली परिवर्तनों के प्रभावों का निरीक्षण करने के लिए प्रयोग है, लोगों को उन चीजों को समझाने के लिए नहीं कह रहा है। –
http://www.regular-expressions.info/possessive.html – Phrogz
@TimPietzcker मुझे वोट देने के लिए धन्यवाद। इससे मेरे लिए कोई फर्क नहीं पड़ता, लेकिन नीचे वोट 'नए पदों' को बंद कर देता है - जो मुझे लगता है कि घातक है। मैं कम से कम इस तरह के वोटों के लिए छेड़छाड़ कर रहा हूं, लेकिन ऐसी अवधारणाओं के लिए आपको इतनी उत्सुक अवधारणा वाले लोगों की तरह बहुत अधिक अंतर है। लेकिन कुछ दिनों से कुछ 'एसओ' उपयोगकर्ता मुझे सवालों के महत्व को जानने के बिना दूसरों को 'वोट देने' में ज्यादा रुचि रखते हैं। यह ठीक है अगर आप मेरी 'पोस्ट' नहीं समझते हैं। लेकिन जब जवाब पोस्ट किया गया है और जब जवाब बहुत ज्यादा ज्ञात है, तो वोट देने के लिए वोट वापस क्यों न आएं। – DoLoveSky