【发布时间】:2016-09-02 11:39:06
【问题描述】:
我有这个string:
String str = "Displaying bills 1 - 20 of 10000 in total";
我想解析总值,在这种情况下是10000。
这是我尝试过的:
Regex regex = new Regex(@"\\d+(?=\\s*in total)");
Match match = regex.Match("Displaying bills 1 - 20 of 10000 in total");
if (match.Success)
{
Console.WriteLine(match.Value);
}
目前这已经成功了。
【问题讨论】:
-
不要在逐字字符串中分隔反斜杠。所以使用
@"\d+(?=\s*in total)"或"\\d+(?=\\s*in total)"(没有@)。 -
是的,
@"\"表示 1 个文字反斜杠,在d之前有 2 个,匹配文本中的\和d。当您删除@并使字符串文字成为常规字符串时,"\\"将被解析为正则表达式引擎将\d解析为数字速记字符类所必需的 1 个文字反斜杠。