PSR*_*PSR 4 regex linqpad c#-4.0
我正在使用这个正则表达式来匹配 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());
Run Code Online (Sandbox Code Playgroud)
不管 -/+ 和 . 符号它应该匹配 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();
Run Code Online (Sandbox Code Playgroud)
^[-+]?(\d{1,8}|(?=\d\d*\.\d+?$)[\d\.]{1,9})$
Run Code Online (Sandbox Code Playgroud)
^[-+]?(\\d{1,8}|(?=\\d\\d*\\.\\d+?$)[\\d\\.]{1,9})$
Run Code Online (Sandbox Code Playgroud)
它要么找到一个 8 位数字
,要么找到一个句点或数字的 9 个实例......仅当有 1 个句点分隔数字时。9是会计期间。