我正在尝试在 C# 中使用正则表达式来匹配可以包含的软件版本号:
- 一个 2 位数字
- 1 位或 2 位数字(不以 0 开头)
- 另一个 1 或 2 位数字(不是从 0 开始)
- 1、2、3、4 或 5 位数字(不以 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 )?