Почему "[" соответствует [a-zA-Z]
Regex oRegex = new Regex(@"test[a-zA-z]");
string st = @"this is a test1 and testA and test[abc] another testB and test(xyz) again.";
foreach(Match match in oRegex.Matches(st))
{
Console.WriteLine(match.Value);
}
Выход:
панцирь
тестовое задание[
testB
Вопрос: почему test[
в выходной? Класс символов [a-zA-Z] должен соответствовать только буквенным символам от a до z и от A до Z.
3 ответа
Решение
У вас есть опечатка в вашем регулярном выражении. [a-zA-z]
должно быть [a-zA-Z]
,
Характер [
находится между A
а также z
персонажи.
Так как [
попадает в диапазон ASCII A-z
так что меняй A-z
присутствует внутри класса char A-Z
Regex oRegex = new Regex(@"test[a-zA-Z]");
Z - опечатка в вашем случае. Измените это [a-zA-Z]
Regex oRegex = new Regex(@"test[a-zA-Z]");