2013-11-14 4 views
41

एक नियमित अभिव्यक्ति में एक बिंदु . किसी एकल चरित्र से मेल खाता है। regex के लिए आदेश में एक बिंदु का मिलान करने के लिए, डॉट भाग निकले हो गया है: \.क्या एक डॉट को नियमित अभिव्यक्ति के वर्ण वर्ग (वर्ग ब्रैकेट) में से बचाना है?

It has been pointed out to me वर्ग कोष्ठक [] अंदर एक डॉट भाग निकले होने की जरूरत नहीं है कि। उदाहरण के लिए, अभिव्यक्ति: [.]{3}... स्ट्रिंग से मेल खाएगा।

क्या यह वास्तव में नहीं है? और यदि हां, तो क्या यह सभी रेगेक्स मानकों के लिए सच है?

+0

हां यह सच है कि डीओटी (और अधिकांश अन्य विशेष पात्रों) को चरित्र वर्ग में भागने की आवश्यकता नहीं है। – anubhava

+2

नियमित अभिव्यक्ति वाक्यविन्यास के लिए कोई "मानक" नहीं है। – BoltClock

+1

@ बोल्टक्लॉक कुछ हैं: पॉज़िक्स, पॉज़िक्स विस्तारित, perl। Http://en.wikipedia.org/wiki/Regular_expression#Standards – Dariusz

उत्तर

58

एक चरित्र वर्ग (वर्ग कोष्ठक) किसी भी चरित्र में छोड़कर ^, -, ] या \ एक शाब्दिक है।

यह वेबसाइट एक शानदार संदर्भ है और इसमें विभिन्न रेगेक्स स्वादों की बारीकियों पर बहुत सारी जानकारी है। http://www.regular-expressions.info/refcharclass.html

+2

यह वास्तव में इस बात पर निर्भर करता है कि भाषा इसे कैसे संभालती है, लेकिन अधिकांश भाषाओं के लिए यह सच है। –

+15

'-' भी शाब्दिक है यदि यह अंतिम मूल्य –

+0

आईसीयू और जावा regexps में,' ['और'] 'दोनों वर्ण वर्ग के अंदर से बच जाना चाहिए (और' {'और'} 'चरित्र के बाहर से बच जाना चाहिए कक्षा)। –

संबंधित मुद्दे