gpt4 book ai didi

固定长度 float 的正则表达式

转载 作者:行者123 更新时间:2023-12-03 20:36:38 25 4
gpt4 key购买 nike

我正在使用这个正则表达式来匹配 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();

最佳答案

改变的正则表达式:

^[-+]?(\d{1,8}|(?=\d\d*\.\d+?$)[\d\.]{1,9})$

转义版本:
^[-+]?(\\d{1,8}|(?=\\d\\d*\\.\\d+?$)[\\d\\.]{1,9})$

解释

它会找到一个 8 位数字
或者它会找到一个句点或数字的 9 个实例......仅当有 1 个句点分隔数字时。 9是会计期间。

在线演示

http://regex101.com/r/kD1oT6

关于固定长度 float 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22526696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com