-4

我想获取这个 xml 属性的整数值limit=\"25\"

我试过这个:Match match = Regex.Match(response.Content, "(?<=limit=))\\d+"); 给我一个错误:“太多)的。

而这个:Match match = Regex.Match(response.Content, @"limit=([0-9])$" 这什么都不返回,匹配不成功

从这个xml:

<issues type="array" limit="25" total_count="251" offset="0">
<issue>
<id>4317</id>
4

3 回答 3

1

您的第一个正则表达式中有太多 )。数一数。

由于属性值周围的引号,您的第二个失败。试试"limit=\"([0-9])\"$"吧。

很多人会告诉您改用 XML 解析器。我强烈建议,如果您要做的不仅仅是从众所周知的 XML 中提取非常小的数据,因为 XML 本身不能用正则表达式解析。

于 2012-11-23T15:29:01.363 回答
1

Regex可用于解析 XML,因为它的格式很严格,但不建议使用它

采用LINQ2XML

XElement doc=XElement.Parse(response.Content);       
var value=doc.Attribute("limit").Value;

或者

var value=Regex.Match(response.Content, @"limit=""(\d+)""",RegexOptions.Singleline).Groups[1].Value;
于 2012-11-23T15:30:45.123 回答
-1

最好用

字符串 TheStringNeededToBeParsed = "... xml ";

TheStringNeededToBeParsed .IndexOf(...

于 2012-11-23T15:57:46.280 回答