Я пытаюсь использовать регулярное выражение на С# для соответствия номеру версии программного обеспечения, которое может содержать:
- 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][]])?";
(примечание: если я попробую без «@» и просто выйду из квадратных скобок, выполнив «\[», я получу сообщение об ошибке «Нераспознанная escape-последовательность»)
Я могу добраться до точки, где номер версии проверяется правильно, но он принимает все, что идет после (например, «10.1.23.26812thisShouldBeWrong» сопоставляется как правильное).
Итак, мой вопрос: есть ли способ использовать регулярное выражение для сопоставления/проверки квадратных скобок в строке или мне нужно преобразовать его в другой символ (например: изменить [a] на a и вместо этого сопоставить *s)?