ПредишенСледващото

Групирането на Constructs показване на порциите изрази регулярни изрази и улавяне на линията на входния низ. Дизайн групиране може да се използва за следните цели.

Сравнение с тази част от израз, който се повтаря в входния низ.

Използването quantifiers до частта на израза с множество езикови елементи на регулярни изрази. За повече информация относно quantifieds см., Виж Quantifiers в регулярните изрази.

Добавянето на експресията в линията, която се връща методи RegEx. Замяна и мач. Резултати.

Премахването на части от Match.Groups експресивните свойства и преработката им отделно от текста.

В следващата таблица са структурата на групиране, оправдателните механизъм .NET Framework регулярни изрази, и това е показано дали те са за хващане или не-заснемане.

Къде name1 - текущата група (по избор), NAME2 - преди определена група, а subexpression - всеки валиден образец за регулярен израз. Това е определение балансирана група заличава определението за NAME2 и съхранява интервалът между NAME2 и name1 в name1. Ако NAME2 група не е определена, обратно търсене се извършва, за да съвпадат. От премахването на последното определение на NAME2 осигурява достъп до предишното определение на NAME2. Тази конструкция позволява използването на купчина утаява група NAME2 като брояч вложени структури като скоби или отваряне и затваряне на скоби.

определение Балансиран група използва като NAME2 стека. Първоначалната характер на всеки загнездена структура се поставя в колекция група и Group.Captures. При сравняване на съответната характер отваряне затваряне символ се заличава от групата, и събиране улавя намалява с един елемент. След сравняване на отваряне и затваряне на всички символи вложени структури, NAME1 група е празна.

Ако промените регулярния израз в следния пример за използване на подходящо по откриването и закриването героите вграден дизайн, можете да го използвате, за да се справят с най-вложени конструкции като математически изрази и реда код, който може да съдържа много вложени извиквания на методи.

В следващия пример, определение балансирана група се използва за да съответства на левия и десния ъглови скоби (<>) При въвеждане на низ. В примера, двете имена групи са определени, се отварят и затварят. се използва като комин за проследяване на съответните двойки ъглови скоби. Всеки посветен напусна скоба ъгъл се поставя в събирането на групата Open. Посветен и всяка дясна скоба ъгъл се поставя в непосредствена събирането група. определение Балансиран група гарантира, че е налице съответстващо скоба прав ъгъл за всеки напуснал скоба ъгъл. В противен случай, последната част от знака, (? (Open) (?!)). Тя се изчислява само ако групата не е празна Open (оттук всички загнездена структура не е затворена). Ако последната част от знака се оценява, сравнението е грешка, тъй като част от знака (?!) Е отчет за отрицателно търсене напред с нулев размер, който винаги се връща грешка.

Следваща група структура прилага или забранява на определени параметри на израза:

Когато част от изразяването - всеки валиден образец за регулярен израз. Например, (? I-а :) деактивира случай чувствителност и един режим. За повече информация за наличните вградени опции, вижте. В секцията Настройки на регулярни изрази.

Можете да зададете параметрите, които се прилагат в цялата регулярния израз, а не част от него, с помощта на конструктора System.Text.RegularExpressions. Regex или статичен метод. вградени настройки Можете също така да се уточни, че се прилага след определен момент в регулярния израз, използвайки езикова конструкция (imnsx-imnsx?).

Тя е оразмерена на групата не е група от хватката. Това означава, че въпреки факта, че всяка част от линията за заснемане на част от словото. е включена в съвпадение, не се добавя към групата и дръжката не се използва за запълване на GroupCollection обект.

Например, регулярен израз \ б (IX :? D \ w +) \ и в следния пример използва вграден в параметри в групата на проектиране, да даде възможност за сравняване нечувствителен и игнорира пропуски в определянето на думи, започващи с буквата "D". Определяне на регулярния израз е показано в таблицата по-долу.

Съвпадение трябва да завършва на границата дума.

Когато част от изразяването - всеки образец за регулярен израз. За успешно съвпадение на израза не трябва да бъде в входния низ от лявата страна на текущата позиция. Въпреки това, всеки подниз не е съвпадение subexpression. които не са включени в резултата от сравнението.

Следващият пример задава датата на всеки ден от седмицата делничен ден (т.е.. Е. Не е събота или неделя).

Подниз се сравняват захващане група регулярен израз, представлявана от предмети System.Text.RegularExpressions. Група. който може да бъде извлечен от System.Text.RegularExpressions обекта. GroupCollection. върнете Match.Groups собственост. GroupCollection обект се попълва, както следва:

Първата група обект в колекцията (с нула индекс обект) представлява всички сравнение.

Последният набор от Група обекти е кръстен заловени групи. Те са изброени в реда, в който те са определени в регулярен израз, от ляво на дясно. Стойността на първия обявен индексът защипвания група е с един повече от индекса на последния неназован групата на захващане. Ако регулярния израз не е заловен от неназовани групи на индекса на първото захващане на име групата е една.

Ако заловен групата, за да се приложи квантор, съответните свойства Group. Capture.Value и Capture.Index обект Capture.Length отразяват последното поднизът разпределени захващане група. Можете да получите пълен набор от поднизове разпределени групи с quantifiers на CaptureCollection обект. върнете Group.Captures собственост.

Следният пример илюстрира връзката между обекти и Група Capture.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!