Kezdőoldal » Számítástechnika » Programozás » Milyen sztringekre illeszkedik...

Milyen sztringekre illeszkedik az ^ (b. ) c? $ szabályos kifejezés?

Figyelt kérdés
Bash-Perl nyelvrol van szó.

2016. dec. 6. 20:56
 1/4 anonim ***** válasza:
13%
b.-al kezdődik, utána van 0 vagy 1 c és ennyi
2016. dec. 6. 22:09
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%

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

2016. dec. 6. 23:30
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
100%

"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.

2016. dec. 7. 01:28
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Köszönöm a válaszokat!
2016. dec. 7. 09:51

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!