所以我有一个字符串,我想在Param8上得到int值,我尝试使用Regex表达式
(< Param8>)\ d +(< / Param8>)
但我只想要它里面的值。
<Param1>13</Param1>
<Param2>Print Document</Param2>
<Param3>username</Param3>
<Param4>\\PC</Param4>
<Param5>HP DeskJet 1110 series</Param5>
<Param6>USB001</Param6>
<Param7>123</Param7>
<Param8>1</Param8>
我如何获得最后一个参数的int值?因为当我尝试上面的表达式时,它还包含了param标签。
编辑: 这是我的代码
private void getPrintedPages()
{
Regex parts = new Regex(@"<Param8>\d+</Param8>");
StreamReader reader = File.OpenText(@".\report.xml");
string line;
while ((line = reader.ReadLine()) != null)
{
Match match = parts.Match(line);
if (match.Success)
{
string result = match.Groups[1].Value.ToString();
MessageBox.Show(result);
}
}
}
答案 0 :(得分:1)
您需要在正则表达式中使用组
static void Main(string[] args)
{
string input = "<Param8>1</Param8>";
Regex rx = new Regex(@"<Param8>(\d+)</Param8>");
var res = rx.Match(input);
Console.WriteLine(res.Groups[1].Value);
}
无需为您的打开/关闭代码使用群组()
,只为您的数字添加群组并获取它。零组总是完整的结果,所以你需要第一个。