我想从Regex的收据中获取总价。
格式为:
TOTAL 15.40
目标只是让价格超出字符串。
我从TOTAL[ .0-9]
开始,但这只返回了TOTAL
这个词。
我用Google搜索并将这个推到一起,但无法让它工作:
TOTAL(\\s+)(?<value>[.0-9]+)
我制作了以下代码:
sRegex = "TOTAL(\\s+)(?<value>[.0-9]+)";
Match match = Regex.Match(this.sHTMLResult, sRegex, RegexOptions.None);
if (match.Success)
Console.Out.WriteLine("regex good");
else
Console.Out.WriteLine("regex fail");
但是正则表达式并没有成功。
我尝试将其从格式如下的HTML文件中删除:
TOTAL 15.40
答案 0 :(得分:1)
您可以使用:
"TOTAL *(\d*.\d*)"
答案 1 :(得分:1)
您的初始正则表达式可以正常使用提供的文本:
TOTAL(\\s+)(?<value>[.0-9]+)
但是,正如您在评论中指出的那样,这是来自HTML并包含没有中断空格的字符实体,因此您还需要考虑这些:
TOTAL(\\s+|( )+)(?<value>[.0-9]+)
答案 2 :(得分:0)
你的正则表达式有效(按照建议查看你的输入),但它有一个小错误:它会捕获任何数字和点的组合(如333.3.2.22 ....)更好的一个是:
TOTAL\s+(?<value>\d+\.\d+)
答案 3 :(得分:0)
(?(\b.*\b\s)([0-9.]*[0-9]))
应该有用。
我建议您使用至少对我有帮助的Regex hero online editor。
答案 4 :(得分:-2)