从字符串行解析GUID

Wil*_*oat 3 c# regex parsing

我有不同的选择如何将我的GUID存储为字符串行.

1. Accessibility|5102d73a-1b0b-4461-93cd-0c024738c19e
2. 5102d73a-1b0b-4461-93cd-0c024738c19e;#5102d73a-1b0b-4461-93cd-0c024733d52d
3. |;#5102d73a-1b0b-4461-93cd-0c024738c19e;#SharePointTag|5102d73a-1b0b-4461-93cd-0c024733d52d
3. Business pages|;#5102d73a-1b0b-4461-93cd-0c024738cz13;#SharePointTag|5102d73a-1b0b-4461-93cd-0c024733d52d
Run Code Online (Sandbox Code Playgroud)

你能帮助我解决这个问题吗?我怎么能解析这个标签并最终得到Guids类型?也许正则表达可以帮助这种情况?

Fab*_*ske 5

看起来你正在玩托管元数据,术语商店ID和术语集ID :)

只需使用常规正则表达式(下面的"p"变量):

string c1 = "Accessibility|5102d73a-1b0b-4461-93cd-0c024738c19e";
string c2 = "5102d73a-1b0b-4461-93cd-0c024738c19e;#5102d73a-1b0b-4461-93cd-0c024733d52d";
string c3 = "|;#5102d73a-1b0b-4461-93cd-0c024738c19e;#SharePointTag|5102d73a-1b0b-4461-93cd-0c024733d52d";
string c4 = "Business pages|;#5102d73a-1b0b-4461-93cd-0c024738cz13;#SharePointTag|5102d73a-1b0b-4461-93cd-0c024733d52d";
string p = @"([a-zA-Z0-9]{8}[-][a-zA-Z0-9]{4}[-][a-zA-Z0-9]{4}[-][a-zA-Z0-9]{4}[-][a-zA-Z0-9]{12})";

MatchCollection mc;

Console.WriteLine("#1");
mc = Regex.Matches(c1, p);
foreach (var id in mc)
    Console.WriteLine(id);

Console.WriteLine("#2");
mc = Regex.Matches(c2, p);
foreach (var id in mc)
    Console.WriteLine(id);

Console.WriteLine("#3");
mc = Regex.Matches(c3, p);
foreach (var id in mc)
    Console.WriteLine(id);

Console.WriteLine("#4");
mc = Regex.Matches(c4, p);
foreach (var id in mc)
    Console.WriteLine(id);
Run Code Online (Sandbox Code Playgroud)

Wich输出:

#1
5102d73a-1b0b-4461-93cd-0c024738c19e
#2
5102d73a-1b0b-4461-93cd-0c024738c19e
5102d73a-1b0b-4461-93cd-0c024733d52d
#3
5102d73a-1b0b-4461-93cd-0c024738c19e
5102d73a-1b0b-4461-93cd-0c024733d52d
#4
5102d73a-1b0b-4461-93cd-0c024738cz13
5102d73a-1b0b-4461-93cd-0c024733d52d
Press any key to continue...
Run Code Online (Sandbox Code Playgroud)