Kezdőoldal » Számítástechnika » Programozás » Reguláris kifejezés: a case-in...

Reguláris kifejezés: a case-insensitive és a csoportosítás miért nem működik egyszerre?

Figyelt kérdés

^(egy|kettő|három)$

Ezzel nincs baj, csak ezt a három szót fogadja el, és csak ebben a formában.


^(?i)(egy|kettő|három)$

Ez már nem úgy működik, ahogy szerintem kellene. Nem figyel a kis- és nagybetűkre, ez oké, cserébe viszont nemcsak ezt a három szót fogadja el, hanem bármit.


Már rengeteg variációt kipróbáltam, de egyik sem vezetett eredményre. Van valakinek ötlete, hogy hogyan oldhatnám meg, hogy csak a megadott szavakat fogadja el, azoknál viszont ne tegyen különbséget a kis- és nagybetű között?


Előre is köszönöm!


2018. máj. 18. 18:46
1 2
 11/16 A kérdező kommentje:

Az ékezetekkel nincs probléma. Csak, ha azt a módosíót hozzáteszem, akkor mindent elfogad.


Amúgy meg most derült ki, hogy nemcsak az elejével van baj, pedig az online ellenőrzőben működött. Élesben viszont a többi résznél is elszáll néha.


Ez lenne, amivel próbálkozom:

^((?i)(január|február|március|április|május|június|július|augusztus|szeptember|október|november|december)|\d{1,2}|\d{4}|[<|>]?\d{4})$

2018. máj. 19. 03:19
 12/16 anonim ***** válasza:
Nem mondom hogy olyan tökéletes regex, mindenesetre működik. Tehát valami mással van a probléma.
2018. máj. 19. 03:46
Hasznos számodra ez a válasz?
 13/16 anonim ***** válasza:

Próbáld meg a linkelt válaszban lévő megoldást.

[link]

Egyébként a különböző regex implementációk eltérhetnek egymástól, nem mind tudja az összes ilyen-olyan szabvány változatot.

2018. máj. 19. 07:43
Hasznos számodra ez a válasz?
 14/16 anonim ***** válasza:
És ha külön szenvedés helyett DatePicker-t használnál? Minek újra implementálni, ami már készen ott van?
2018. máj. 19. 08:33
Hasznos számodra ez a válasz?
 15/16 anonim ***** válasza:

Én is csak azt tudom mondani, hogy attól függetlenül, hogy nyilván meg lehet csinálni az általad áhított reguláris kifejezést, de vajon mennyire hasznos/életszerű/magától értetődő/könnyen használható egy olyan mező, ami hónapok neveit és mindenféle számokat fogad el, megfűszerezve némi logikai operátorokkal.

Az a tapasztalatom, hogy ha valamilyen problémát nagyon nehezen tudsz megoldani az általában csak annyit jelez, hogy rosszul közelíted meg.

Ha dátumot akarsz bevinni, akkor használj valamilyen kész DatePicker megoldást. Ha intervallumot akarsz meghatározni (gondolom valami ilyesmit akarnak jelenteni a kacsacsőrök), akkor használj kettőt, amiből csak az egyiket kötelező kitölteni, a másik ilyenkor automatikusan felvesz egy min/max értéket.

2018. máj. 19. 10:41
Hasznos számodra ez a válasz?
 16/16 anonim ***** válasza:
Csatlakozom: Esetleg a regex kifejezéssel szedd szét a bevitt adatot, és utána ellenőrizd az egyes mezők tartalmát.
2018. máj. 20. 09:24
Hasznos számodra ez a válasz?
1 2

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!