Допустимый ввод - это любые два заглавных буквы, но они не могут быть одинаковой буквой. Я думал, что следующее будет работать, вычитая первую согласованную группу (первую букву) из класса символов для второй буквы.Совпадение двух разных букв
Regex ValidInput = new Regex(@"^([A-Z])[A-Z-[\1]]$");
ValidInput.IsMatch("AA"); // should be false but is true
Почему это неправильно и как правильно это сделать? Спасибо!
Вы делаете хорошую точку, но это упрощенный пример, который действительно только собирается быть составной частью гораздо большего регулярного выражения. –
Также, надеюсь, он хорошо комментирует, поэтому, когда кто-то просматривает свой код, им не нужно ничего что-либо выяснять, просто прочитайте комментарий, рассказывающий им, что он делает. –
Но разве они не говорят, что комментарии злы? Иногда они лгут. :-) Но да, я согласен с тобой. Регулярные выражения, безусловно, являются исключением для великих комментаторов комментариев. –