Autor Zpráva
Taps
Profil
Zdravím, potřeboval bych pomoci s regulárními výrazy, zadání je níže uvedené

první znak může být
1) /
2) .
3) _

ad 1) může obsahovat písmeno (a - z [bez diakritiky], číslo 2 nebo 6, celkem max 2 znaky, min 1 znak vyhovující: /p2, /6, /ab, /b
ad 2) může obsahovat písmeno (a - z [bez diakritiky], číslo 1,2,4,6, celkem max 2 znaky, min 1 znak vyhovující .12, .ab, .62,a2
ad 3) může obsahovat maximálne dvojici čísel do 30, vyhovující _15, _8

Dokázal by mi s tímto někdo poradit ?

Děkuji
DobráKlávesnice
Profil *
^((/p2|/6[a-z26]?|/ab|/b[a-z26]?)|(\.12|\.ab|\.62|\.a2)|(_15|_8[0-9]?))$
Zkus to, když to nebude fungovat tak jsem nepochopil zadání. Napiš seznam hodnot, které projdou a neprojdou a lépe popiš zadání, protože z toho, co jsi napsal jsem paf.
Tori
Profil
např.? ~^/[a-z26]{1,2}|\.[a-z1246]{1,2}|_[1-3]?[0-9]$~ (netestováno)
Taps
Profil
Diky Tori..vyzkousim
1Pupik1989
Profil
Dospěl jsem skoro ke stejnému regulárnímu výrazu jako Tori. Akorát poslední část jsem změnil, jinak by prošlo i _31.

~^/[a-z26]{1,2}|\.[a-z1246]{1,2}|_[12]?[0-9]|_30$~
Taps
Profil
1Pupik1989, Tori:
Ještě bych potřeboval, aby údaje oddělení svislítky byly brány jako samostatné skupiny. Nevím zda je možné aplikovat něco jako operátor OR

V současné době totiž projde i výraz .a3, což je nežádoucí
peta
Profil
Bylo by dobre vypsat vsechny mozne podoby kombinaci, za predpokladu, ze ses mohl seknout v popisu (V současné době totiž projde i výraz .a3, což je nežádoucí ). Ja budu vychazet jen z tech povolenych tvaru, tak, kdyby neco nesedelo, tak se nediv.

vyhovující: /p2, /6, /ab, /b
/[a-z]{1,2}|[a-z]?[26] -- ab, a, 2, 6, a2, a6
/[a-z26]{1,2} -- to povoluje i kombinaci dvou cisel, 22, 26, 62, 66

vyhovující .12, .ab, .62, a2
\.[a-z]{2}|\.[1246]{2}|[a-z][1246] -- .aa, .12, a1, neprojde ale jednoduche cislo

maximálne dvojici čísel do 30, vyhovující _15, _8
_[12]?[0-9]|_30 -- pozor, vyhovuje i pro _0
Tori
Profil
Taps:
Stačí celý výraz zabalit do závorek: ~^(?:/[a-z26]{1,2}|\.[a-z1246]{1,2}|_[12]?[0-9]|_30)$~ (Anebo napsat znaky začátku a konce řetězce do všech alternativ - v původním reguláru se totiž aplikovaly jen na první a poslední možnost.)
1Pupik1989: Dík. :)
Taps
Profil
Tori:
Děkuji
1Pupik1989
Profil
Tori:
Já zase zapomněl uzavřít to do skupiny. Nějak mi nedocvaklo, že znak začátku a konce jsou platné pouze na první a poslední.

Ony i ty poslední dva reguláry by šlo hodit do jedné skupiny.

_(?:[12]?[0-9]|30)

Už je to ale delší a nepřikládal jsem tomu nějaký větší význam.

peta:
pozor, vyhovuje i pro _0

Nula není číslo? :-O Jdu praštit svého bývalého matikáře. :)
peta
Profil
1Pupik1989: Ano, ale treba je to jedna z tech veci, kterou nechtel :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: