从字符串行分析 GUID
本文关键字:GUID 字符串 | 更新日期: 2023-09-27 18:34:09
我有不同的选择如何将我的 GUIDS 存储为字符串行。
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
你们能帮我一些想法吗,我怎样才能解析这个标签并最终获得 Guids 类型列表?也许正则表达式在这种情况下会有所帮助?
看起来您正在使用托管元数据、术语库 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);
输出:
#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...
var possibleGuids = myString.Split("|;#".ToCharArray(),
StringSplitOptions.RemoveEmptyEntries);
Guid g;
foreach(var poss in possibleGuids)
{
if(Guid.TryParse(poss, out g))
{
// g contains a guid!
}
}
string sContent = "your data"; // any of your four forms of input
string sPattern = @"([a-z0-9]*[-]){4}[a-z0-9]*";
MatchCollection mc = Regex.Matches(sContent, sPattern );
foreach (var sGUID in mc)
{
// Do whatever with sGUID
}
例如,
您可以拆分字符串
"fist|second".Split('|')
获得 GUID 字符串后,使用
Guid = new Guid(myString);
对于第一行
var guid = new Guid("Accessibility|5102d73a-1b0b-4461-93cd-0c024738c19e".Split("|")[1]);
对于第二行
var myArray = "5102d73a-1b0b-4461-93cd-0c024738c19e;#5102d73a-1b0b-4461-93cd-0c024733d52d".Split(';');
var guid1 = new Guid(myArray[0]);
var guid2 = new Guid(myArray[1].Replace('#',''));
所以你可以这样继续..