C#正则表达式过滤

时间:2012-11-13 19:29:02

标签: c# regex

我需要获得XML的价值:

<usr_clan_id>123</usr_clan_id>

我需要得到123,这是一个例子。 我会尝试使用:

Match match = Regex.Match(input, @"<usr_clan_id>([0-9])</usr_clan_id>$",
RegexOptions.IgnoreCase);

但这很糟糕:/

3 个答案:

答案 0 :(得分:2)

var doc = XDocument.Parse(xmlstring);
var value = doc.XPathSelectElement("//usr_clan_id").Value;

答案 1 :(得分:2)

最简单的解决方案

XDocument xdoc = XDocument.Parse(@"<usr_clan_id>123</usr_clan_id>");
int id = (int)xdoc.Element("usr_clan_id");

答案 2 :(得分:0)

如果您获得了一个巨大的XML文件,请使用解析器并按照注释中的建议获取XPath的值。如果您只获得了问题中包含的简短XML字符串,那么RegEx在我看来完全没问题。

关于正则表达式:您只匹配一位数。而是使用匹配一个或多个数字的+

@"<usr_clan_id>([0-9]+)</usr_clan_id>$"
相关问题