RegExMatch
Сохранённое совпадение, захваты и позиции в исходном тексте.
Получайте результат через RegEx.Search или RegEx.SearchAll. Сначала проверьте отсутствие null, затем используйте GetString() для полного совпадения либо GetString("имя") для группы. Группа 0 — всё совпадение; остальные номера относятся к захватывающим скобкам.
GetStart/GetEnd относятся к исходной строке в нативных 32-битных единицах. После символа вне BMP это не индексы C# UTF-16. GetEnd — исключающая граница. Для отсутствующей/неучаствовавшей группы позиции равны -1; участвовавшая пустая группа имеет равные неотрицательные позиции.
Strings — string[], а Names — словарь участвовавших именованных групп и их номеров. Очистка исходного RegEx не стирает уже полученный результат.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
RegExMatchКонструктор
public RegExMatch();Создаёт пустой контейнер без результата поиска. Обычно получайте RegExMatch через Search или SearchAll: конструктор сам ничего не ищет.
Свойства3
NamesСвойство
public Reckfell.Collections.Dictionary Names { get; }Словарь участвовавших именованных групп и их номеров, как GetNames. Отсутствующая необязательная группа не включается. Порядок ключей не заменяет номера захватов.
StringsСвойство
public string[] Strings { get; }Управляемый string[] с полным совпадением и группами, как GetStrings. Это не Reckfell.Collections.Array. Пустая строка не различает пустой захват и неучаствовавшую группу.
SubjectСвойство
public string Subject { get; }Весь исходный текст поиска, как GetSubject; позиции групп относятся к нему.
Методы7
GetEndint
public int GetEnd(Variant? name = default);Читает исключающую правую границу группы в исходном Subject. Для длины непустого или пустого совпадения используйте GetEnd - GetStart только после проверки, что начало >= 0. Единицы нативные 32-битные.
| Имя | Тип | По умолчанию |
|---|---|---|
name | Variant? | default |
nameНомер группы или строковое имя. Отсутствующий аргумент/null выбирает группу 0. Используйте допустимые неотрицательные номера; -1 в результате позиции — признак отсутствия, не входной индекс.
intПозиция либо -1, если группа не существует или не участвовала. Участвовавшая пустая группа имеет равные неотрицательные начало и конец.
GetGroupCountint
public int GetGroupCount();Возвращает число захватывающих групп, без группы 0. Включает и группы, не участвовавшие в этом совпадении.
intЧисло захватывающих групп без полного совпадения; 0 у пустого контейнера.
GetNamesReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary GetNames();Создаёт словарь имя → номер группы только для участвовавших именованных групп. Изменение возвращённого словаря не перенастраивает сохранённый результат. При повторных именах выбирается первое участвовавшее соответствие.
Reckfell.Collections.DictionaryНовый Dictionary: ключи String с именами и целые номера групп.
GetStartint
public int GetStart(Variant? name = default);Читает начало группы в исходном Subject. Группа 0 — всё совпадение. Позиция измеряется в нативных 32-битных единицах, не индексах UTF-16 C# и не видимых графемах.
| Имя | Тип | По умолчанию |
|---|---|---|
name | Variant? | default |
nameНомер группы или строковое имя. Отсутствующий аргумент/null выбирает группу 0. Используйте допустимые неотрицательные номера; -1 в результате позиции — признак отсутствия, не входной индекс.
intПозиция либо -1, если группа не существует или не участвовала. Участвовавшая пустая группа имеет равные неотрицательные начало и конец.
GetStringstring
public string GetString(Variant? name = default);Возвращает текст выбранной группы с корректным извлечением по нативным позициям. Предпочитайте его прямому C# Substring с GetStart/GetEnd, если не выполняли явное преобразование индексов.
| Имя | Тип | По умолчанию |
|---|---|---|
name | Variant? | default |
nameНомер группы или строковое имя. Отсутствующий аргумент/null выбирает группу 0. Используйте допустимые неотрицательные номера; -1 в результате позиции — признак отсутствия, не входной индекс.
stringТекст группы либо пустая строка. Для различения пустого захвата и отсутствия проверьте GetStart.
GetStringsstring[]
public string[] GetStrings();Возвращает управляемый string[]: полное совпадение в элементе 0, затем захватывающие группы по номеру. Неучаствовавшие группы представлены пустыми строками.
string[]Массив string[]; у пустого контейнера нет элементов.
GetSubjectstring
public string GetSubject();Возвращает весь исходный текст поиска, не только совпавшую подстроку. Результат сохраняет его после Clear или повторного Compile исходного RegEx.
stringКопия значения исходной строки; не одна совпавшая подстрока.