【发布时间】:2016-11-09 14:52:08
【问题描述】:
大家好,我需要从以下字符串中提取 Guid
<PageFieldFieldValue:FieldValue FieldName='fa564e0f-0c70-4ab9-b863-0177e6ddd247' runat='server'></PageFieldFieldValue:FieldValue>
<PageFieldRichImageField:RichImageField FieldName="3de94b06-4120-41a5-b907-88773e493458" runat="server"></PageFieldRichImageField:RichImageField>
在这种情况下,我需要得到的是“fa564e0f-0c70-4ab9-b863-0177e6ddd247”和“3de94b06-4120-41a5-b907-88773e493458”,但是这个guid是动态的,每次都会改变,而且还有更多的guid在我拥有的字符串中,我需要获取所有这些 guid,以便我可以将它们添加到集合中。
注意:字符串实际上是一个aspx页面内容。所有节点都不同,但我需要获取相同的属性“FieldName”。
我浏览了链接C# RegEx string extraction 并以同样的方式构造了正则表达式。这是我所做的:
string s = @"<PageFieldFieldValue:FieldValue FieldName='fa564e0f-0c70-4ab9-b863-0177e6ddd247' runat='server'>
</PageFieldFieldValue:FieldValue>";
Regex reg = new Regex(@"FieldName=(?<ReferenceId>{36})");
Match match = reg.Match(s);
string guid = match.Groups["ReferenceId"].Value;
这怎么对我不起作用。我得到异常“解析“FieldName =(?{35})” - 量词 {x,y} 什么都没有。在创建 Regex 对象“reg”时。
如果我不使用 {36} 这应该是 GUID 的长度:
Regex reg = new Regex(@"FieldName=(?<ReferenceId>)")
我没有得到任何异常,但我也没有得到想要的结果。 match.Groups["ReferenceId"].Value 返回空字符串
【问题讨论】: