2013-03-31 5 views
0

Я знаю, что это заявление должно возвращать ложь, как и ожидалосьрегулярного выражения ismatch логики с особым характером

Regex.IsMatch("+", @"[a-zA-Z0-9]") 

но почему эти заявления соответствуют, хотя они не должны (из моего понимания)

Regex.IsMatch("C++", @"[a-zA-Z0-9]") 
Regex.IsMatch("C++", @"[a-zA-Z0-9]+") 

ответ

4

Тех матчей потому что вы не соответствуете всей строке. Они будут соответствовать C в C++.

Использование ^ и $, чтобы соответствовать начало и конец строки:

bool onlyAlphaNumeric = Regex.IsMatch("C++", @"^[a-zA-Z0-9]+$"); // will be false 
Смежные вопросы