Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpRgChG 7 of 509 menu
◀ ▶

Группы символов в регулярках C#

Существуют специальные команды, которые позволяют выбрать сразу целые группы символов. Команда \d означает цифру от 0 до 9. Команда \w обозначает цифру, букву или знак подчеркивания. В C# сюда входят буквы любых алфавитов, не только латиница. Команда \s обозначает пробельный символ: пробел, перевод строки или табуляцию. Можно инвертировать значение команды, написав большую букву: например, если \d - цифра, то \D - не цифра.

Найдем все цифры:

using System.Text.RegularExpressions; string txt = "1 12 123"; string res = Regex.Replace(txt, @"\d", "!"); Console.WriteLine(res);

Операторы повторения считают команды-группы одним целым, то есть группирующие скобки не нужны. В следующем примере шаблон поиска выглядит так: цифра от 0 до 9 один или более раз:

using System.Text.RegularExpressions; string txt = "1 12 123 abc @@@"; string res = Regex.Replace(txt, @"\d+", "!"); Console.WriteLine(res);

В следующем примере шаблон поиска выглядит так: все что угодно один или более раз, но не цифра от 0 до 9:

using System.Text.RegularExpressions; string txt = "123abc3@@"; string res = Regex.Replace(txt, @"\D+", "!"); Console.WriteLine(res);

В данном примере шаблон поиска выглядит так: пробельный символ один раз:

using System.Text.RegularExpressions; string txt = "1 12 123 abc @@@"; string res = Regex.Replace(txt, @"\s", "!"); Console.WriteLine(res);

В данном примере шаблон поиска выглядит так: НЕ пробельный символ один или более раз. Все подстроки, разделенные пробелами, заменятся на "'!'":

using System.Text.RegularExpressions; string txt = "1 12 123 abc @@@"; string res = Regex.Replace(txt, @"\S+", "!"); Console.WriteLine(res);

В данном примере шаблон поиска выглядит так: цифра или буква один или более раз. Все подстроки, состоящие из цифр и букв, заменятся на "'!'":

using System.Text.RegularExpressions; string txt = "1 12 123a Abc @@@"; string res = Regex.Replace(txt, @"\w+", "!"); Console.WriteLine(res);

В данном примере шаблон поиска выглядит так: НЕ цифра и НЕ буква один или более раз. Под данное определение в нашем случае попадает "'@@@'" и все пробелы (они ведь тоже не цифры и не буквы). Обратите внимание на то, что в конце один "'!'" - в него преобразовалась строка "' @@@'" - с пробелом впереди:

using System.Text.RegularExpressions; string txt = "1 12 123 Abc @@@"; string res = Regex.Replace(txt, @"\W+", "!"); Console.WriteLine(res);

Дана строка:

string txt = "a1a a2a a3a a4a a5a aba aca";

Напишите регулярку, которая найдет строки, в которых по краям стоят буквы "'a'", а между ними одна цифра.

Дана строка:

string txt = "a1a a22a a333a a4444a a55555a aba aca";

Напишите регулярку, которая найдет строки, в которых по краям стоят буквы "'a'", а между ними любое количество цифр.

Дана строка:

string txt = "aa a1a a22a a333a a4444a a55555a aba aca";

Напишите регулярку, которая найдет строки, в которых по краям стоят буквы "'a'", а между ними любое количество цифр (в том числе и ноль цифр, то есть строка "'aa'").

Дана строка:

string txt = "avb a1b a2b a3b a4b a5b abb acb";

Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы "'a'" и "'b'", а между ними - не число и не пробел.

Дана строка:

string txt = "ave a#b a2b a$b a4b a5b a-b acb";

Напишите регулярку, которая найдет строки следующего вида: по краям стоят буквы "'a'" и "'b'", а между ними - не буква, не цифра и не пробел.

Дана строка:

string txt = "ave a#a a2a a$a a4a a5a a-a aca";

Напишите регулярку, которая заменит все пробелы на "'!'".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить