using System;
using System;
using System.Text.RegularExpressions;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
string pattern;
//pattern = @"^([1-9]\d{0,2}|5000|[1-4]\d{3})$";//1到5000整数包括1和5000
//pattern = @"^((?:[1-9]\d{0,2}|[1-4]\d{3})((\.\d+)*)|(5000(\.[0]+)*))$";//1到5000小数包括5000.0*
//pattern = @"^(1(\.0+)*|(0(.\d+)?))$";//0到1 小数包括0和 1
pattern = @"^(([1-9]|\d{2,3}|10[0-1]\d|102[1-4])|0)?$";//0到1024的整数包括0和1024
pattern = @"^(0|(10[0-1]\d)|102[0-4]|([1-9]([1-9])?[1-9]?))?$";//0到1024的整数包括0和1024
//pattern = @"^(([1-2](\.\d+)?)|(0\.[6-9][0-9]+)|3(\.0+)*|(0.60*))?$";//0.6~3.0
//pattern = @"^(-3(\.0+)*|-3(\.[0]\d*)|-3(\.1)*|-3(\.1[0-3]\d*)|-3(\.140*))?$";
//pattern = @"^(3(\.0+)*|3(\.[0]\d*)|3(\.1)*|3(\.1[0-4]\d*)|3(\.150*))?$";
//pattern = @"^(((-3(\.0+)*|-3(\.[0]\d*)|-3(\.1)*|-3(\.1[0-3]\d*)|-3(\.140*))|(-?[0-2](\.\d+)*))|(3(\.0+)*|3(\.[0]\d*)|3(\.1)*|3(\.1[0-4]\d*)|3(\.150*)))?$";
while (true)
{
var str = Console.ReadLine();
foreach (Match match in Regex.Matches(str, pattern))
Console.WriteLine(match.Value);
}
//Console.ReadKey();
}
}
}
【-3.14,3.15】这个最有难度
pattern = @"^(((-3(\.0+)*|-3(\.[0]\d*)|-3(\.1)*|-3(\.1[0-3]\d*)|-3(\.140*))|(-?[0-2](\.\d+)*))|(3(\.0+)*|3(\.[0]\d*)|3(\.1)*|3(\.1[0-4]\d*)|3(\.150*)))?$"
【0.6,3.0】
pattern = @"^(([1-2](\.\d+)?)|(0\.[6-9][0-9]+)|3(\.0+)*|(0.60*))?$";//0.6~3.0
【0,1024】
pattern = @"^(0|(10[0-1]\d)|102[0-4]|([1-9]([1-9])?[1-9]?))?$";//0到1024的整数包括0和1024
或者
pattern = @"^(([1-9]|\d{2,3}|10[0-1]\d|102[1-4])|0)?$";//0到1024的整数包括0和1024
【0,5000】
pattern = @"^([1-9]\d{0,2}|5000|[1-4]\d{3})$";//1到5000整数包括1和5000
【0,1】
pattern = @"^(1(\.0+)*|(0(.\d+)?))$";//0到1 小数包括0和 1
控制台主要是为了测试验证,你输入测试数据后,能匹配上就返回对应值,匹配不上就是空的。如下图
如果看不懂,那就熟悉下正则表达式的语法:
正则表达式是什么:
正则表达式 是一种匹配输入文本的模式。
.Net 框架提供了允许这种匹配的正则表达式引擎。
模式由一个或多个字符、运算符和结构组成。
限定符
限定符指定在输入字符串中必须存在上一个元素(可以是字符、组或字符类)的多少个实例才能出现匹配项。限定符包括下表中列出的语言元素。
下表列出了限定符: