उत्तर
उन्हें क्वांटिफायर कहा जाता है।
*
0 या पूर्ववर्ती अभिव्यक्ति
+
1 या पूर्ववर्ती अभिव्यक्ति
एक परिमाणक लालची है की अधिक है, यह संभव के रूप में कई से मेल खाता है इसका मतलब है कि के और अधिक।
?
क्वांटिफायर के बाद इस क्वांटिफ़ायर को "अविभाज्य" बनाने के व्यवहार को बदलता है, इसका मतलब है कि यह जितना संभव हो सके उतना मिलान करेगा।
उदाहरण लालची/ungreedy
स्ट्रिंग पर उदाहरण के लिए "ABAB"
a.*b
"ABAB" (preg_match_all एक मैच "ABAB" वापस आ जाएगी,) से मेल खाएगी
जबकि a.*?b
केवल शुरुआती "एबी" से मेल खाता है (preg_match_all दो मैचों को वापस करेगा, "ab")
आप अपने रेगेक्स ऑनलाइन का परीक्षण कर सकते हैं उदा।Regexr पर, see the greedy example here
+
न्यूनतम एक है, *
शून्य भी हो सकता है।
पहला (+
) एक या अधिक वर्ण है। दूसरा (*
) शून्य या अधिक वर्ण है। दोनों गैर लालची (?
) हैं और कुछ भी मेल खाते हैं (.
)।
... न्यूलाइन को छोड़कर। –
यह इस बात पर निर्भर करता है कि एस संशोधक सेट है या नहीं। – Quentin
ए +
मैचों एक या अधिक पिछले पैटर्न के उदाहरण। *
मैचों शून्य या अधिक पिछले पैटर्न के उदाहरण।
तो मूल रूप से, यदि आप +
का उपयोग करते हैं तो पैटर्न का कम से कम एक उदाहरण होना चाहिए, यदि आप *
का उपयोग करते हैं तो यह तब भी मेल खाएगा जब इसके कोई उदाहरण नहीं हैं।
+
मैचों कम से कम एक चरित्र किसी भी संख्या (0 सहित)
*
मैचों पात्रों
?
की, एक आलसी अभिव्यक्ति को इंगित करता है, तो यह संभव के रूप में कुछ वर्ण से मेल खाएगी।
एक सितारा प्लस के समान ही है, केवल अंतर यह है कि प्लस 1 या उससे अधिक के पहले वर्णित चरित्र/समूह से मेल खाता है, शुरुआत 0 या उससे अधिक के साथ मेल खाती है।
मिलान करने के लिए स्ट्रिंग नीचे दी गई है।
ab
पैटर्न (ab.*)
ab
के परिणाम के साथ कब्जा समूह के लिए मिलान लौट जबकि पैटर्न (ab.+)
से मेल नहीं खाएगी और कुछ भी वापस नहीं होगा।
लेकिन अगर आप के पास निम्न की स्ट्रिंग बदलने के लिए, यह पैटर्न के लिए aba
वापस आ जाएगी (ab.+)
aba
के लिए अधिक आम शब्द है, मुझे लगता है कि यह विशेष रूप से + बनाम * के प्रश्न के लिए बेहतर उत्तर है। – Terrence
मुझे लगता है कि पिछले जवाब एक सरल उदाहरण को उजागर करने में विफल:
उदाहरण के लिए हम एक सरणी है:
numbers = [5, 15]
निम्नलिखित regex अभिव्यक्ति ^[0-9]+
मैचों: 15
ओ केवल तभी। हालांकि, ^[0-9]*
5 and 15
दोनों से मेल खाता है। अंतर यह है कि +
ऑपरेटर की आवश्यकता है कम से कम एक पूर्ववर्ती regex अभिव्यक्ति की नकल
RegEx में, {i,f}
का अर्थ है "i
f
के मैचों के बीच है।" के निम्न उदाहरणों पर एक नज़र डालें:
{3,7}
3 7 मैच{,10}
कोई निचली सीमा के साथ 10 मैच अप करने के लिए इसका मतलब है के बीच का मतलब है (यानी कम सीमा 0 है){3,}
कम से कम का मतलब कोई ऊपरी सीमा के साथ 3 मैचों{,}
मैचों की संख्या के लिए कोई ऊपरी सीमा या निचली सीमा का मतलब है (यानी कम सीमा 0 और ऊपरी सीमा अनंत है)- (उच्च सीमा यानी अनंत है)साधन वास्तव में 4
सबसे अच्छा भाषाओं, संक्षिप्त होते हैं ऐसा नहीं करता है RegEx:
+
के लिए{,}
?
आशुलिपि है के लिए{1,}
*
आशुलिपि है{,1}
के लिए आशुलिपि है
इसका मतलब है +
कम से कम 1 मैच की आवश्यकता है जबकि *
किसी भी मैचों या कोई मैचों को स्वीकार नहीं करता है और ?
1 से अधिक मिलान या शून्य मिलान स्वीकार नहीं करता है।
क्रेडिट: Codecademy.com
- 1. पीएचपी: <<< ob_start बनाम
- 2. ईजेएस: <% = बनाम <% -
- 3. <% $, <% @, <% =, <% # ... सौदा क्या है?
- 4. PHP व्यंजक <<< EOB
- 5. PHP क्या <<< मतलब है?
- 6. 'ऑपरेटर <<' के लिए 'std :: cout <<' में अस्पष्ट अधिभार <<
- 7. <? के बजाय php <?
- 8. >>>>,> |, ||, | <, <, <<
- 9. <%# %> बनाम <%= %>
- 10. प्रश्न <<
- 11. cout << स्ट्रिंगस्ट्रीम
- 12. अंतर << a_value
- 13. मैं अदालत << MyClass
- 14. PHP में <<< ईओडी का उपयोग क्या है?
- 15. PHP में, "<<<" क्या दर्शाता है?
- 16. एएसपी.Net में, <% = और <% #
- 17. कॉलिंग ऑपरेटर << gdb
- 18. Enumerable.ToList <>() <>
- 19. ओवरलोडिंग ऑपरेटर << - सी ++
- 20. DOMDocument को <as & lt
- 21. रेल ERB <%- ... -%> बनाम <% ... %>
- 22. का अर्थ << = और | =
- 23. कैसे बचें << - असाइन
- 24. <<..>> = आउटपुट
- 25. << ऑपरेटर और प्रत्यावर्तन
- 26. php:</p><p>
- 27. ऑपरेटर बनाना << आभासी?
- 28. <%! %> और <% %>
- 29. ऑपरेटर << ओवरलोडिंग ओस्ट्रीम
- 30. <cstdint> बनाम <stdint.h>
उचित उदाहरण http://regexr.com/39t01 – Tomas
"आलसी" "आलसी" –