Символ шляпки внутри наборов в C#
Как вы знаете, шляпка внутри [ ]
делает отрицание, будучи написанной в
начале скобок. Значит, она является
спецсимволом внутри этих скобок. Чтобы
получить шляпку как символ, нужно или
заэкранировать ее, или убрать с первого
места.
В следующем примере шаблон поиска такой:
первый символ - это все кроме "'d'",
потом две буквы "'x'":
using System.Text.RegularExpressions;
string txt = "axx bxx ^xx dxx";
string res = Regex.Replace(txt, @"[^d]xx", "!");
Console.WriteLine(res);
А теперь шаблон поиска такой: первый
символ - это "'d'" или "'^'",
потом две буквы "'x'":
using System.Text.RegularExpressions;
string txt = "axx bxx ^xx dxx";
string res = Regex.Replace(txt, @"[d^]xx", "!");
Console.WriteLine(res);
Можно не убирать шляпку с первого места, а просто заэкранировать ее с использованием обратного слеша, и она станет обозначать саму себя:
using System.Text.RegularExpressions;
string txt = "axx bxx ^xx dxx";
string res = Regex.Replace(txt, @"[\^d]xx", "!");
Console.WriteLine(res);
Дана строка:
string txt = "^xx axx ^zz bkk @ss";
Напишите регулярку, которая найдет строки по шаблону: шляпка или собака, а затем две латинские буквы.
Дана строка:
string txt = "^xx axx ^zz bkk @ss";
Напишите регулярку, которая найдет строки по шаблону: НЕ шляпка и не собака, а затем две латинские буквы.
Дана строка:
string txt = "^xx axx ^zz bkk";
Напишите регулярку, которая найдет строки по шаблону: не шляпка и не пробел, а затем две латинские буквы.