मैं एक नियमित अभिव्यक्ति कैसे बनाऊं जो पाठ में हेक्साडेसिमल संख्याओं का पता लगाता है?
उदाहरण के लिए, '0x0f4', '0acdecf822eeff32aca5830e438cb54aa722e3', और '8BADF00D'।
मैं एक नियमित अभिव्यक्ति कैसे बनाऊं जो पाठ में हेक्साडेसिमल संख्याओं का पता लगाता है?
उदाहरण के लिए, '0x0f4', '0acdecf822eeff32aca5830e438cb54aa722e3', और '8BADF00D'।
जवाबों:
निम्नलिखित के बारे में कैसे?
0[xX][0-9a-fA-F]+
एक 0 से शुरू होने वाली अभिव्यक्ति का मिलान निम्न या अपरकेस x से होता है, जिसके बाद 0-9, या उससे ऊपर या AF में एक या अधिक वर्ण होते हैं।
/0x[\da-f]/i, लेकिन अन्यथा, +1।
सटीक सिंटैक्स आपकी सटीक आवश्यकताओं और प्रोग्रामिंग भाषा पर निर्भर करता है, लेकिन मूल रूप से:
/[0-9a-fA-F]+/
या अधिक बस, iयह केस-असंवेदनशील बनाता है।
/[0-9a-f]+/i
यदि आप रूबी का उपयोग करने के लिए पर्याप्त भाग्यशाली हैं, तो आप कर सकते हैं:
/\h+/
EDIT - स्टीवन श्रोएडर के जवाब ने मुझे 0x बिट के बारे में मेरी समझ को गलत बना दिया था, इसलिए मैंने अपने सुझावों को तदनुसार अपडेट किया है। यदि आप भी 0x से मेल खाना चाहते हैं, तो समतुल्य हैं
/0[xX][0-9a-fA-F]+/
/0x[0-9a-f]+/i
/0x[\h]+/i
जोड़ा गया अधिक - यदि 0x को वैकल्पिक बनाने की आवश्यकता है (जैसा कि प्रश्न का अर्थ है):
/(0x)?[0-9a-f]+/i
यह 0xउपसर्ग के साथ या उसके बिना मेल खाएगा
(?:0[xX])?[0-9a-fA-F]+
यह उल्लेखनीय है कि MD5 का पता लगाना (जो उदाहरणों में से एक है) के साथ किया जा सकता है:
[0-9a-fA-F]{32}
यदि आप पर्ल या PHP का उपयोग कर रहे हैं, तो आप प्रतिस्थापित कर सकते हैं
[0-9a-fA-F]
साथ में:
[[:xdigit:]]
यदि आप स्ट्रिंग के बीच में एक विशिष्ट हेक्स चरित्र की तलाश कर रहे हैं, तो आप "\ xhh" का उपयोग कर सकते हैं जहां hx हेक्साडेसिमल में वर्ण है। मैंने कोशिश की है और यह काम करता है। मैं C ++ Qt के लिए फ्रेमवर्क का उपयोग करता हूं लेकिन यह अन्य मामलों में समस्याओं को हल कर सकता है, आपके द्वारा उपयोग किए जाने वाले स्वाद (php, javascript, python, golang, आदि) पर निर्भर करता है।
यह उत्तर इससे लिया गया था: http://ult-tex.net/info/perl/
यह सुनिश्चित करता है कि आपके पास तीन से अधिक वैध जोड़े नहीं हैं:
(([a-fA-F]|[0-9]){2}){3}
किसी भी अधिक या कम से कम तीन जोड़े मान्य वर्ण मेल करने में विफल रहते हैं।
मामले में आपको एक इनपुट के भीतर इसकी आवश्यकता होती है जहां उपयोगकर्ता टाइप कर सकता है 0और उपसर्ग के 0xबिना भी हेक्स संख्या नहीं 0x:
^0?[xX]?[0-9a-fA-F]*$
एक अन्य उदाहरण: सीएसएस रंगों के लिए हेक्साडेसिमल मान एक पाउंड साइन, या हैश (#) के साथ शुरू होता है, फिर छह वर्ण जो या तो ए और एफ के बीच एक अक्षर हो सकते हैं, समावेशी।
^#[0-9a-fA-F]{6}