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

Несохраняющие скобки в C#

Обычные круглые скобки в шаблоне одновременно группируют часть выражения и создают группу. Ее текст потом читают из Groups[n]. Если нужна только группировка, используют несохраняющие скобки (?:...):

using System.Text.RegularExpressions; string txt = "abab123"; Match match = Regex.Match(txt, @"(ab)+([1-9]+)"); Console.WriteLine(match.Groups[1].Value); Console.WriteLine(match.Groups[2].Value);

Здесь Groups[1] хранит последний повтор "ab", а Groups[2] - число. Если первая пара скобок нужна только для повторения, ее заменяют на (?:ab)+:

using System.Text.RegularExpressions; string txt = "abab123"; Match match = Regex.Match(txt, @"(?:ab)+([1-9]+)"); Console.WriteLine(match.Groups[1].Value);

После замены остается одна группа с числом. Несохраняющие скобки удобны, когда повторение или альтернатива нужны в шаблоне, но отдельная группа для этой части не требуется.

Дана строка:

string txt = "xyxy12";

Найдите повтор xy и число после него, сохранив в группе только число.

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