2009-05-13 24 views

Trả lời

23

Tôi sử dụng này để tìm 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

Vâng, giả sử nó luôn luôn sẽ là trong tiêu chuẩn GUID ký hiệu như vậy, nếu regex sau phù hợp với có một GUID. Bạn cũng nên áp dụng phương pháp của ngôn ngữ của bạn làm cho nó không phân biệt chữ hoa chữ thường.

[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}) 

sẽ phù hợp với bất kỳ hex trong các định dạng 8-4-4-4-12 mà đến trước một @

10

Một biến thể lười biếng sẽ

([0-9a -f -] {36}). *? @

Thật dễ đọc và tôi đặt cược nó phù hợp với 99,99% của tất cả các trường hợp;) Nhưng sau đó trong 0,00001% của tất cả các trường hợp sombody có thể có một email địa chỉ phù hợp trong lược đồ GUID.

0

đó cũng là một cách trong một dòng duy nhất để có được 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 
Các vấn đề liên quan