» »

Python regex

Python regex

ozbolt ::

Iscem regex, ki lovi naslednje:

- string dolzine 1, 2 ali 3
- prvi znak poljuben
- drugi znak ne sme biti 'X'
- tretji znak poljuben

Lovi: 'a', 'ab', 'abc'
Ne lovi: '', 'aX', 'aXc', 'abcd'

Moj poskus, ki napacno ulovi 'aX':

r".[^X]?.?"


Lahko resim s for zanko, ampak sigurno obstaja kaj boljsega.
  • spremenil: ozbolt ()

jype ::

Ne ulovi ga napačno: . ujame a, [^X]? ujame prazen niz, .? pa ujame X.

Vprašaj je nič ali ena ponovitev elementa.

Dvomim, da bo šlo drugače, kot z več regexi (druga dva seveda lahko skrčiš v enega s .? na koncu):

r"^(.|.[^X]|.[^X].)$"


Aja, no, ali pa negative lookahead (prva pika matcha samo, če ji ne sledi X, druga in tretja pa poljubno):

r"^.(?!X).?.?$"


^ in $ zato, ker je ? non-greedy in ne bo matchal, če mu ni treba.

Zgodovina sprememb…

  • spremenilo: jype ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Poskodovana word datoteka

Oddelek: Pomoč in nasveti
141795 (1468) fosil
»

ASCII art

Oddelek: Sedem umetnosti
91655 (1429) McAjvar
»

Regular expression

Oddelek: Programiranje
161809 (1236) TESKAn
»

Video na strani

Oddelek: Izdelava spletišč
71249 (1072) iNooby

Več podobnih tem