A csillagkép konstruálja a szabályos kifejezéseket

A csoportosítási konstrukciók a szabályos kifejezés kifejezéseit mutatják be, és rögzítik a beviteli karakterlánc stringjeit. A csoportosítási konstrukciók a következő célokra használhatók.

Egyezzen meg a kifejezésnek a bemeneti sorban megismételt részével.

Quantifikáló alkalmazása egy kifejezés egy részéhez, amely a szabályos kifejezések több nyelvi elemével rendelkezik. A kvantálókkal kapcsolatos további információkért lásd: Quantifiers in Regular Expressions.

Egy kifejezés egy része hozzáadásával a stringhez, amelyet a Regex módszerek adnak vissza. Cserélje ki és illessze be. Eredmény.

Egy kifejezés egyes részeinek kivonata a Match.Groups tulajdonságból és külön feldolgozásuk a teljes szövegből.

A következő táblázat felsorolja a .NET-keretrendszer rendszeres kifejezésmodul által támogatott csoportosítási konstrukciókat, és megmutatja, hogy elfoghatók-e vagy nem is társíthatók-e.

Ha a név1 az aktuális csoport (opcionális paraméter), a name2 az előzőleg meghatározott csoport, és az alexpresszió bármely érvényes szabályos kifejezésmintázat. Ez a kiegyensúlyozott csoport definíció megszünteti a 2. név definícióját, és tárolja az 1. név és a name1 közötti intervallumot. Ha a csoportnév2 nincs megadva, a kereséshez egy fordított keresést hajt végre. Az utolsó definíció2 törlése óta hozzáférést biztosít a 2. név definíciójához. ez a design lehetővé teszi, hogy a név2 csoport kiválasztási veremét a beágyazott konstrukciók számlálójaként használjuk, például a zárójeleket vagy a szögletes zárójeleket.

A kiegyensúlyozott csoportdefiníció a stack nevét használja a név2 számára. Az egyes beágyazott struktúrák kezdeti szimbóluma a csoportban és a Group.Captures gyűjteményében helyezkedik el. Ha egy záró karakter illeszkedik, a megfelelő nyitó karaktert eltávolítják a csoportból, és a Captures gyűjteményt egy elem csökkenti. Az összes beágyazott konstrukció nyitó és záró szimbólumainak egyeztetése után a csoportnév1 üres.

Ha megváltoztatja a reguláris kifejezés a következő példában, hogy a megfelelő nyitó és záró karakter beágyazott design, akkor tudja használni, amelyek a legtöbb beágyazott konstrukciókat, mint például a matematikai kifejezések, illetve a sorokat a kód tartalmazhat sok egymásba ágyazott módszer hívásokat.

A következő példában a bal és a jobb oldali szögletes zárójelek (<>) a bemeneti sorban. A példa két megnevezett csoportot definiál: Open and Close. amelyek veremként használják a megfelelő páros szögletes záróelemek nyomon követését. Minden kiválasztott bal oldali konzol az Open csoport gyűjteménybe kerül. és minden egyes kiválasztott jobbszögű konzol a Bezárás csoport gyűjteményébe kerül. Kiegyensúlyozott csoport meghatározása biztosítja azt, hogy van egy megfelelő derékszögű konzol egyes balra mutató hegyes. Ellenkező esetben az utolsó részmintázat, (? (Nyit) (?!)). Kiszámítása csak akkor, ha a csoport nem üres Nyitott (így az összes beágyazott struktúra nem zárt). Ha az utolsó alminta értékeljük, összehasonlítás egy hiba, mert alminta (?!) A nyilatkozat a kizáró keresési előre nulla szélességű, ami mindig visszatér egy hiba.

A következő csoportosítási design a megjelenő részen a megadott paramétereket alkalmazza vagy letiltja:

Ha a kifejezés egy része a szabályos kifejezés bármely érvényes mintája. Például (? I-s :) letiltja a nyilvántartási és az egysoros módot. A rendelkezésre álló beépített paraméterekkel kapcsolatos további információkért lásd: Rendszerkifejezési lehetőségek.

Megadhatja azokat a paramétereket, amelyek a teljes szabályos kifejezésre vonatkoznak, nem pedig annak részei, a System.Text.RegularExpressions osztály konstruktora segítségével. Regex vagy statikus módszer. Megadhat olyan beépített paramétereket is, amelyeket a szabályszerû kifejezés bizonyos pontja után alkalmaznak a nyelvi konstrukcióval (? Imnsx-imnsx).

A csoportparaméterek felépítése nem láthatatlan csoport. Ez azt jelenti, hogy bár a vonal bármely részét a kifejezés egy része rögzíti. ez nem szerepel a rögzített csoportban, és nem használják a GroupCollection objektum feltöltésére.

Például a reguláris kifejezés \ b (ix :? D \ w +) \ s az alábbi példában a beépített paraméterek a tervezési csoport, így lehetővé teszi az összehasonlítást érzéketlen és figyelmen kívül hagyja hiányosságok meghatározására szavakkal kezdődő a „d” betű. A szabályos kifejezés meghatározását a következő táblázat tartalmazza.

A véletlennek a szó határán kell végződnie.

Ha a kifejezés egy része szabályos kifejezésmintázat. A sikeres illesztés érdekében a kifejezés egy része nem lehet az aktuális pozíció bal oldalán lévő bemeneti sorban. Azonban minden olyan alszakasz, amely nem egyezik az alfejezetben. nem szerepel az összehasonlítás eredményében.

A következő példa összehasonlítja az egyes hétköznapok heti dátumát (azaz nem szombat vagy vasárnap).

A szabályos kifejezés rögzítő csoportja által leképezett aljzatokat a System.Text.RegularExpressions objektumok képviselik. Group. amely kivonatolható a System.Text.RegularExpressions objektumból. GroupCollection. visszaadta a Match.Groups tulajdonság. A GroupCollection objektum a következőképpen épül fel:

A gyűjteményben az első csoportobjektum (egy objektum, amelynek null indexe) az összes leképezést jelenti.

A csoportobjektumok utolsó csoportja az elnevezett befogási csoportokat jelenti. Azokat a sorrendben határozzák meg, amelyben a szabályos kifejezésben balról jobbra vannak meghatározva. Az első nevű elfogócsoport index értéke egynél több, mint az index, az utolsó névtelen rögzítési csoport. Ha a szabályos kifejezésben nincs névtelen rögzítési csoport, akkor az első nevű elkülönítési csoport indexe egyenlő.

Ha a rögzítő csoportra kvantálót alkalmaznak, akkor a megfelelő csoport tulajdonságai. Capture.Value és Capture.Index a Capture.Length objektumot tükrözi a rögzített csoport utolsó alosztályát. A CaptureCollection objektumból a kvantálók csoportjai által allokált aljzatok teljes készlete érhető el. visszaadja a csoport.

Az alábbi példa bemutatja a Csoport és a Capture objektumok közötti kapcsolatot.

Kapcsolódó cikkek