Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Regularni vyraz

Ahoj,
trošku nechápu ukončení jednoho výrazu (který funguje dle mých potřeb)

$regex = "^\D{3,}\w{2}\d{2,}(?!\w)"

Hledám string, který začíná alespoň 3 alfa znaky (ne digit), poté 2 alfanumerickými (a-Z 0-9), poté s minimálně 2 digit a takové, aby končily digit znakem

Ukončení (?!\w) trošku nechápu jak může fungovat, chápu to jako ".. not followed by alphanumeric).. což bych tam teda očekával spíše (?!\D) než \w .. ale s D (jako nondigit) to nefakčí ..

testovací string:

novak10 - valid
novak102 - valid
nov1k10 - valid
administrator - not valid
n1vak10 - not valid
novak10a - not valid

Nebo to ukončení regexu je uplne blbe a ciste nahodou to funguje tak jak ja potrebuji, ackoliv je to napsane blbě?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
A nestačilo by prostě: ^\D{3,}\w{2}\d{2,} Nebo je povoleno i např.: novak10aaa1 ?
Wikan 28.02.2014 09:48
Wikan
když to zkrátím tak to matchuje novak102o což povoleno není... nechci aby string (AD účet) mohl konč…
MKc 28.02.2014 09:55
MKc
No v tom případě: ^\D{3,}\w{2}\d{2,3}$ nový
Wikan 28.02.2014 09:58
Wikan
jo takze na konci mas 2 nebo 3 digit a nasledne ukonceni stringu.. chapu to tak ? nový
MKc 28.02.2014 09:59
MKc
To jsi přece chtěl, ne? nový
Wikan 28.02.2014 10:02
Wikan
jj .. vlastně jo .. nevím proč sem se tam snažil vecpat něco pro "not followed" .. proste 2-3 digit… nový
MKc 28.02.2014 10:06
MKc
.. a i tak, dokázal bys vysvětlit proč s (?!\w) to také fungovalo? nový
MKc 28.02.2014 10:07
MKc
A proč by nemělo? nový
Wikan 28.02.2014 10:32
Wikan
no podle jisté stránky \w = Matches any word character including underscore. Equivalent to '[A-Za-z… nový
MKc 28.02.2014 10:36
MKc
a co ta negace u \w? :-) nový
touchwood 28.02.2014 10:49
touchwood
"^\D{3}\w{2}\d{2,3}$" (jinak to hledalo i nesmysly jako svc_testing99) poslední
MKc 11.03.2014 11:11
MKc
jinak psal jsem to podle http://www.codeproject.com/Articles/9099/The-30-Mi nute-Regex-Tutorial nový
MKc 28.02.2014 09:58
MKc

Zpět do poradny Odpovědět na původní otázku Nahoru