我正在尝试使用C#中的正则表达式来匹配软件版本号,该版本号可以包含以下内容:
- 两位数
- 一位或两位数字(不以0开头)
- 另一个一位或两位数字(不以0开头)
- 一到五位数字(不以0开头)
- 方括号内的可选字母作为结尾。
一些例子:
10.1.23.26812 83.33.7.5 10.1.23.26812[d] 83.33.7.5[q]
无效的例子:
10.1.23.26812[ 83.33.7.5] 10.1.23.26812[d 83.33.7.5q
我已经尝试了以下方法:
string rex = @"[0-9][0-9][.][1-9]([0-9])?[.][1-9]([0-9])?[.][1-9]([0-9])?([0-9])?([0-9])?([0-9])?([[][a-zA-Z][]])?";
(注意:如果我尝试不使用“@”并只通过“\ [”转义方括号,那么会出现错误,提示“无法识别的转义序列”)
我可以使版本号验证正确,但它接受后面的任何内容(例如:“10.1.23.26812thisShouldBeWrong”被匹配为正确)。
所以我的问题是:是否有一种方法可以使用正则表达式来匹配/检查字符串中的方括号,或者我需要将其转换为不同的字符(例如:将[a]更改为a并匹配*s)?