Milyen sztringekre illeszkedik az ^ (b. ) c? $ szabályos kifejezés?
Reguláris kifejezésben a pont egy darab bármilyen karakter lehet. A perlt nem ismerem, de ott is így kellene működnie. Ha eltekintek a kérdésben szereplő szóközöktől, amik gondolom nincsenek benne az eredetiben:
^ - poziciót jelöl, a szöveg kezdetét
( - itt nem számít, egyébként kijelölés kezdete
b - b karakter
. egy bármilyen karakter
) - itt nem számít, egyébként kijelölés vége
c - c karakter
? - az előző darabszámára utal: 0 vagy 1 olyan karakter
$ - vége
Összegezve: a b-vel kezdődő kétkarakteres szövegekre és a b-vel kezdődő és c-vel végződő háromkarakteres szövegekre illeszkedik ez a minta.
Pl. ezekre illeszkedik:
bac
ba
bcc
Ezekre nem:
b
xbac
baca
"szabályos kifejezés"
Te jó isten, a hideg futkos a hátamon, amikor megpróbálják magyarra fordítani a szakzsargont...
Feltételezem, hogy a szóközökból pont annyi látszik, amennyi a regexben is szerepel.
- A "^" a sor elejét jelöli, illetve szögletes zárójelek közt negációt. Itt a sztring kezdete.
- A sztringünk szóközzel kezdődik.
- A zárójel csoportosít, jelen esetben majdnem teljesen felesleges, mert nincs mögötte operátor. Olvashatóság szempontjából javít a helyzeten, mert látszik, hogy két szóközt szeretnénk.
- "b. " egy "b" és egy tetszőleges (néhány kivétellel, pl. soremelés) karaktert jelöl, szóköz által követve.
- Ezeket mégegy szóköz követi.
- A "?" operátor opcionális karaktert/csoportot jelöl, tehát itt vagy van egy "c" betű, vagy nincs.
- Végül a sort egy újabb szóköz zárja.
- A "$" a sztring végét jelzi.
Keress rá, hogy a "." mely konkrét karakterekre (nem) illeszkedik! Ezt követően az összes lehetséges permutáció könnyedén legenerálható:
" b* c "
és
" b* "
Ahol a *-ot minden, a "." által lefedett karakterre behelyettesítjük.
Egy csúnya, de szögegyszerű megoldás, ha végigiterálsz az összes létező karakteren (0-255, a unicode-ot most hagyjuk), és ha a karakterre matchel a "^.$" regex, akkor behelyettesíted a "*" helyére, és az így kapott sztringet elmented az eredménytömbbe.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!