2009-05-13 6 views
14

किसी ईमेल में कोई ग्रिड है, तो मेल करने के लिए रेगेक्स पैटर्न को समझने का प्रयास करना, उदा।एक ईमेल उत्तर से एक guid प्राप्त करने के लिए Regex

[email protected]

Guid संभावित @ से पहले कहीं भी हो सकता है, उदाहरण के लिए

[email protected]

उत्तर

23

मैं इस का उपयोग GUIDs को खोजने के लिए

Regex isGuid = new Regex(@"^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$", RegexOptions.Compiled); 
0

ठीक है, यह सोचते हैं कि यह हमेशा मानक में होने वाला है GUID नोटेशन उस तरह, यदि निम्नलिखित रेगेक्स मैचों में एक GUID था। आपको केस-असंवेदनशील बनाने की अपनी भाषा की विधि भी लागू करनी चाहिए।

[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}[^@]*@ 
0
^[^@]*([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}) 

8-4-4-4-12 प्रारूप है कि एक @

10

से पहले आता है में किसी भी हेक्स से मेल खाएगी एक आलसी संस्करण होगा

([0-9a -एफ -] {36})। *? @

पढ़ना आसान है और मुझे लगता है कि यह सभी मामलों में 99,99% से मेल खाता है;) लेकिन फिर सभी मामलों में 0,00001% में किसी के पास ईमेल हो सकता है पता जो एक GUID योजना में फिट बैठता है।

0

वहाँ भी एक पंक्ति में एक ही रास्ता GUID

string findGuid = "hi Aether experiment 1481de3f-281e-9902-f98b-31e9e422431f @sdfsf 1481de3f-281e-9902-f98b-31e9e422431f"; //Initialize a new string value 
var guids = Regex.Matches(Regex.Split(findGuid, "@")[0], @"(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}")[0]; //Match all substrings in findGuid 
प्राप्त करने के लिए है
संबंधित मुद्दे