Согласно документации MSDN, в .
персонаж
Соответствует любому одиночному символу, кроме \n.
В этом случае, почему это регулярное выражение не соответствует?:
Regex.IsMatch("c",@"[.]")
вы соответствуете [.]
что означает характер .
Просто используйте .
чтобы получить ваш результат. []
Означает любой из символов внутри .
теряет свое особое значение.
См. Демонстрацию.
http://regex101.com/r/qC9cH4/19
c
захватывается второй группой, а не первой.
Вы не можете использовать .
внутри []
чтобы получить все символы. Удалите []
и он будет работать.
Вы можете просто использовать:
Console.WriteLine(Regex.IsMatch("c", @"."));
Если вы делаете это часто, добавьте
public static class Extensions
{
public static bool Match(this string value, String query)
{
return Regex.IsMatch(value, query);
}
public static void Out<t>(this t value)
{
Console.WriteLine(value);
}
}
После этого вы можете использовать
"c".Match(".").Out();
Заменить @"[.]";
с @".";
// Использовать .