Products
GG网络技术分享 2025-03-18 16:15 2
求一个正则表达式 要求不能小于0.0001 可以等于 不能是负整数
还得把0排除
using System;using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
// your code goes here
string[] test = { \\\"1.23\\\", \\\"123.45\\\", \\\"111\\\", \\\"12\\\", \\\"1\\\", \\\"0\\\", \\\"0.01\\\", \\\"0.0001\\\", \\\"0.00011\\\", \\\"0.000098\\\", \\\"1.000001\\\", \\\"-1.23\\\" };
foreach (var item in test)
{
var r = Regex.IsMatch(item, @\\\"^(?!0\\.0000)(?!^0$)\\d+(\\.\\d+){0,1}\\\");
Console.WriteLine(item + \\\": \\\" + r);
}
}
}
1.23: True
123.45: True
111: True
12: True
1: True
0: False
0.01: True
0.0001: True
0.00011: True
0.000098: False
1.000001: True
-1.23: False
既然不能小于0.0001,那么显然所有负数都不满足了,为什么又说不能是负整数?
(?!0.0000)\\d+(\\.\\d+)
using System;using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
// your code goes here
string[] test = { \\\"1.23\\\", \\\"123.45\\\", \\\"111\\\", \\\"0\\\", \\\"0.01\\\", \\\"0.0001\\\", \\\"0.00011\\\", \\\"0.000098\\\", \\\"1.000001\\\", \\\"-1.23\\\" };
foreach (var item in test)
{
var r = Regex.IsMatch(item, @\\\"^(?!0\\.0000)\\d+(\\.\\d+){0,1}\\\");
Console.WriteLine(item + \\\": \\\" + r);
}
}
}
1.23: True
123.45: True
111: True
0: True
0.01: True
0.0001: True
0.00011: True
0.000098: False
1.000001: True
-1.23: False
纯数字,还写正则干嘛,直接>=0.0001,不就完了
谢邀
1.1 \\w是包括x的,例如AXBXC+D, AXBXC会被匹配成一组
1.2 你的问题中的值 abc之类的,包括x否?如果包括x,值的代号 a,b,c是否只有一位?如果不仅是一位,那此题无解。就是说如果你允许 abc+d这种,abc是一个值,那你没法把 axc 和 a乘c 区分开。
2.1 一个正则表达式没法解决俩问题,你提取了乘积项,加项就没法提取
2.2 而且乘积项本身就可以是加项
Demand feedback