पायथन री में, आप संख्या से ऊपरी मामले अल्फा तक फैला सकते हैं। इसलिए..
import re
test = "01234ABCDEFGHIJKabcdefghijk01234abcdefghijkABCDEFGHIJK"
re.compile(r'[0-f]+').findall(test) # Bad: matches all uppercase alpha chars
## ['01234ABCDEFGHIJKabcdef', '01234abcdef', 'ABCDEFGHIJK']
re.compile(r'[0-F]+').findall(test) # Partial: does not match lowercase hex chars
## ['01234ABCDEF', '01234', 'ABCDEF']
re.compile(r'[0-F]+', re.I).findall(test) # Good
## ['01234ABCDEF', 'abcdef', '01234abcdef', 'ABCDEF']
re.compile(r'[0-f]+', re.I).findall(test) # Good
## ['01234ABCDEF', 'abcdef', '01234abcdef', 'ABCDEF']
re.compile(r'[0-Fa-f]+').findall(test) # Good (with uppercase-only magic)
## ['01234ABCDEF', 'abcdef', '01234abcdef', 'ABCDEF']
re.compile(r'[0-9a-fA-F]+').findall(test) # Good (with no magic)
## ['01234ABCDEF', 'abcdef', '01234abcdef', 'ABCDEF']
यह सबसे सरल अजगर UUID regex बनाता है:
re_uuid = re.compile("[0-F]{8}-([0-F]{4}-){3}[0-F]{12}", re.I)
मैं इसे प्रदर्शन के लिए तुलना करने के लिए समय का उपयोग करने के लिए एक अभ्यास के रूप में छोड़ दूँगा।
का आनंद लें। इसे पाइथोनिक ™ रखें!
नोट: वे स्पैन भी मेल खाएंगे :;<=>?@', यदि आपको संदेह है कि आप झूठी सकारात्मकता दे सकते हैं, तो शॉर्टकट न लें। (टिप्पणियों में यह बताने के लिए ऑलिवर ऑबर्ट का धन्यवाद।)