Chcel by som zistiť, či telefónne číslo obsahuje presne 3 číslice - bodka - 3 číslice - bodka - 3 číslice. (Napr. 123.456.789
)
Zatiaľ to mám, ale to nefunguje:
^(d{3}){2}d{4}$
odpovede:
1 pre odpoveď č. 1Všimnite si, že ušlý držiak )
stratí svoj zvláštny význam v regexe a vzor sa stáva neplatným, pretože skupina zachytenia nie je zatvorená.
Ak chcete priradiť bodku s regexom, musíte ju zaradiť do vzoru a ak hovoríte, že 3 číslice musia byť na konci, nemá zmysel deklarovať 4 číslice d{4}
.
^(d{3}.){2}d{3}$
^ ^
alebo ak rozšírime prvú skupinu:
^d{3}.d{3}.d{3}$
Takže všetky opravy pozostávajú z pridania tečky po druhom spätnom lomítku a nastavenia konečného obmedzujúceho kvantifikátora.
Všimnite si, že pre väčšinu obáv týkajúcich sa "štylistiky" (keďže efektívnosť je zanedbateľná) by som použil nezachytávaciu skupinu s prvým variantom regexu:
^(?:d{3}.){2}d{3}$