2017-02-03 9 views
9

के लिए मैं लंबाई 4 के रूप में की हेक्साडेसिमल मान की एक नियमित अभिव्यक्ति को परिभाषित किया है इस प्रकार है:नियमित अभिव्यक्ति हेक्साडेसिमल

([0-9A-F]{4}) 

और यह ठीक काम करता है और व्याकरण की दृष्टि से

0000 

भी एक वैध हेक्साडेसिमल संख्या है, लेकिन मैं इसे वैध मिलान से त्यागना चाहता हूं और इसलिए वर्तमान नियमित अभिव्यक्ति को विस्तारित करने के तरीके पर संकेत देना चाहता हूं ताकि

0000 is flagged as invalid and filtered out. 

धन्यवाद

उत्तर

11

आप negative lookahead इस्तेमाल कर सकते हैं:

(?!0000)[0-9A-F]{4} 

यहाँ (?!0000) एक नकारात्मक अग्रदर्शी समूह है। यह कम या ज्यादा कहता है: "और अगले तत्व 0000" की अनुमति न दें "लेकिन बिना उपभोग करते हैं।

आप इसे regex101 पर देख सकते हैं।

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