【发布时间】:2014-03-20 07:54:35
【问题描述】:
我正在使用这个正则表达式来匹配 8 位有符号浮点数。
string exp= "12345678";
string regEx1="^([-+]?[(\\d+\\.?(\\d+)?)]{1,8})($)";
Regex topRowRegx = new Regex(regEx1, RegexOptions.IgnoreCase | RegexOptions.Multiline);
Match matchResult = topRowRegx.Match(exp.Trim());
不管 -/+ 和 .符号它应该匹配 1 到 8 位数字。
它应该匹配 -1.2345678、123.45678、+12.34、1.2、1、12345678、1254。 如果有小数点符号,小数点前和小数点后应至少有一位数字。
上面的表达式工作正常,但是当我使用 -/+ 或 .带有 8 位数字。 您能帮我如何准确识别 8 位数字并保留剩余符号计数吗?
更新: Vasili Syrakis 的回答解决了上述问题。只是出于好奇,为什么这没有给出正确的结果?
string exp = "text> -9.9999999 \"some text here\"";
var resultNumber = Regex.Match(exp, "[-+]?(\\d{1,8}|(?=\\d\\d*\\.\\d+?$)[\\d\\.]{1,9})");
("Result:"+resultNumber.ToString()).Dump();
【问题讨论】: