GUID 可以出现在带有或不带有单引号的语句中,例如
string inputString = @"ObjectID='{A591C480-2979-48ED-9796-5C3149472E7A}' and ObjectID={90f0fb85-0f80-4466-9b8c-2025949e2079}";
我的要求是:
如果 GUID 用单引号括起来,请跳过它。
如果它没有用单引号括起来,则用单引号括起来。
我期待输出像
inputString = @"ObjectID='{A591C480-2979-48ED-9796-5C3149472E7A}' and ObjectID='{90f0fb85-0f80-4466-9b8c-2025949e2079}'"
或者
inputString = @"ObjectID='{A591C480-2979-48ED-9796-5C3149472E7A}' and ObjectID={'90f0fb85-0f80-4466-9b8c-2025949e2079'}"
在单引号内查找 GUID 的正则表达式是
var quotedGuidMatches = Regex.Matches(inputString, @"'[({]?\s?[a-zA-Z0-9]{8}\s?[-]?\s?([a-zA-Z0-9]{4}\s?[-]?\s?){3}\s?[a-zA-Z0-9]{12}\s?[})]?'");
查找 GUID 的正则表达式是
var guidMatches = Regex.Matches(inputString, @"\b[({]?\s?[a-zA-Z0-9]{8}\s?[-]?\s?([a-zA-Z0-9]{4}\s?[-]?\s?){3}\s?[a-zA-Z0-9]{12}\s?[})]?\b");
用单引号包围 guid 的正则表达式是
inputString = Regex.Replace(inputString, @"\b[({]?\s?[a-zA-Z0-9]{8}\s?[-]?\s?([a-zA-Z0-9]{4}\s?[-]?\s?){3}\s?[a-zA-Z0-9]{12}\s?[})]?\b", "'$0'", RegexOptions.IgnoreCase);
不幸的是,这个发现所有 GUID 都在单引号内并且没有单引号。replace 方法最终将围绕 guid 已经有多个单引号的单引号。
您能否帮我找到不在单引号内的 GUID。然后用单引号括起来。
慕盖茨4494581
狐的传说
互换的青春
相关分类