c# - 正则表达式模式 number1 到 number2

标签 c# regex string

我正在搜索以下行为的模式:

number1-number2
number1: Can be everything >= 0 and <= int.MaxValue
number2: Can be everything >= number1 and <= int.MaxValue

例如

"1-2" => True
"0-0" => True
"10-22" => True
"22-10" => False
"10-10" => True
"a-b" => False

如果能直接把这两个int值提取出来就好了。

最佳答案

您不能使用正则表达式来比较提取的数字。您需要使用 int.TryParse 解析这些值并实现其他检查以获得您需要的内容。

假设范围内只有整数正数,这里是一个String.Splitint.TryParse方法:

private bool CheckMyRange(string number_range, ref int n1, ref int n2)
{
    var rng = number_range.Split('-');
    if (rng.GetLength(0) != 2) 
       return false;

    if (!int.TryParse(rng[0], out n1))
       return false;
    if (!int.TryParse(rng[1], out n2))
       return false;
    if (n1 >= 0 && n1 <= int.MaxValue)
       if (n2 >= n1 && n2 <= int.MaxValue)
           return true;
    return false;
}

并称它为

int n1 = -1;
int n2 = -1;
bool result = CheckMyRange("1-2", ref n1, ref n2);

关于c# - 正则表达式模式 number1 到 number2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32606905/

相关文章:

c# - WinForms C# 并非所有代码路径都返回一个值

c# - services.AddSingleton,永远不会调用服务的构造函数

c# - 正则表达式检测单词是否是字符串的一部分并且下一个单词是否未大写

Java - 将 2D 字符串部分转换为 2D Integer ArrayList

c# - MVC 在布局代码之前执行 View 代码并破坏我的脚本顺序

c# - IronPython - 从 C# 发出警告

python - 在 Django URL 中,使 "foo.com/Bar"与 "foo.com/bar"相同的正则表达式是什么

Regex/Ruby - 分割保留分隔符

java - 尝试迭代字符串并查找 char 是否是字母或数字,然后将其 append 到不同的字符串

arrays - 斐波那契字符串数组