Regularni izrazi, selektiranje izraza koji ima nešto na početku ili na kraju

Pozdrav,

treba znači selektirati izraz koji će imati nešto na početku ili na kraju, ali da to nešto se ne nadje u matchu.

Recimo izraz:
/[^v]pero/

će selektirati riječ pero, a neće selektirati nalivpero …no kod selekcije riječi pero će uzeti jedan simbol ispred riječi pero koji odgovara na: [^v] …a ja bi da u selekciji imam samo “pero”.

Znam da mogu napraviti:

/(?:[^v])(pero)/ …pa onda utjecati samo na pojedinu zagradu iz selektiranog matcha, ali cijeli match i dalje ima uključen znak koji ne želim…i to nije ono što bi htio.

Ja trebam nešto ovakvo:

n$ Matches any string with n at the end of it
^n Matches any string with n at the beginning of it

…iako ovo slično zvuči ovom što trebam, ali nije to. Ovo znači uzima selekciju koja se nalazi na početku ili kraju stringa unutar kojega selektiramo. A ja trebam selekciju koja će početi nakon nečega…ili da završi sa nečim. Ali to nešto da nije uključeno u selekciju…

Našao sam zapravo varijantu onoga što trebam, ali samo za slučaj kad želimo da nešto slijedi (ili ne slijedi) nakon naše selekcije, znači:

`/pero(?=v)/` //v mora slijediti nakon pero
`/pero(?!v)/`  //v ne smije slijediti nakon pero

u oba slučaja, karakter nakon pere neće biti selektiran, i to je ono što tražim. No nedostaje mi varijanta kako definirati što će se tako naći (ili se neće naći) ispred tražene selekcije.

Unaprijed hvala!

Jesi probao ovako: [^v](pero)

evo ti za email pa povataj sta ti treba
if(preg_match("/^[a-zA-Z0-9][a-zA-Z0-9.]*@[a-zA-Z0-9][a-zA-Z0-9.]*.[a-zA-Z0-9]{2,4}$/", $email)

Koristio si lookahead, ali ne i lookbehind asertion. Hint: lt sign. :wink:

(?<=v)(pero)(?=v)

2 Likes

Jep, to je ono što trebam. Naišo sam kasnije i na to…ali ima jedan problemčić. Ne radi u javascriptu.

Jep, ali iako će pero biti u svojoj grupi…i iako je to jedina grupa, cijeli match će se sastojati i od jednog karaktera prije riječi “pero”. No koliko izguglah, za JS i nema bolje solucije…

Nije zgoreg napomenuti i o kojem se jeziku radi jer ima razlika.
Jesi li bio ovde i ovde?

Istina…dosad je sve uvijek bilo kompatibilno sa ostalim enginima za regexp, pa nisam ni očekivao.

Cekirat cu bolje linkove…mada sam danas na brzaka, onako direktno probao dali rade paterni koje nude…i nisu radili.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Profit Monkey