Regularni izrazi

1

Regularni izrazi

offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

Ucim regularne izraze i sad sve je ok kad to probam u nekom editoru ali kad probam uz pomoc php-a dobijam greske:

$fp=fopen("new_index.htm","r"); $page=""; while(!feof($fp))    $page.=fread($fp,1024); fclose($fp); $res=array(); $regpat='script src="[a-zA-Z0-9/?_.&;%+=-]+"'; preg_match_all($regpat, $page, &$res); print_r($res);

Ovaj pattern:
script src="[a-zA-Z0-9/?_.&;%+=-]+"
bi trebalo da nadje sve linkove JS fajlova, i to radi u editorima ali php izbacuje ovo:

Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in C:\Inetpub\wwwroot\new_airline\momondo\test3.php on line 10

Dopuna: 28 Okt 2007 21:57

Nadjoh resenje:
$regpat='/script src="[a-zA-Z0-9\/?_.&;%+=-]+"/';

Ali mi nije jasno koja je fora sa ovom obicnom kosom crtom... nigde se ne pominje a bez nje ne moze?!
Moze li neko da objasni?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Kada znak ima neko znacenje u izrazu (recimo sluzi kao operator), da bi se isti ubrojao u podatke a ne u operacije, on mora da se upise kao escape sekvenca.
http://www.lucersoft.com/HBEPRODOC/Scripts/EscapeSequences.php



offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

Ma dobro to znam Smile
Ovo nije "backslash" vec obicna kosa crta.
Nigde ne pise da obicna kosa crta ima specijalno znacenje (barem ja nisam nasao), zato pitam. Gore sam stavio \ ispred nje da bih je "escapeovao" i to radi. Samo mi nije jasno njeno znacenje kod php regularnih izraza.

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

preg f-je zahtevaju delimitere neke na pocetku i na kraju regularnog izraza, mogao si da stavis i @ na pocetak i kraj i to bi radilo, ja obicno stavim ili @ ili stavim viticaste zagrade {}...

offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

@Blood
Hvala.
Nasao sam i ovde sad: http://www.php.net/manual/en/ref.pcre.php
Nisam bio svestan da postoje 2 standarda, Perl i Posix... Ja radio po Posix-u a hteo Perl funkcije Smile

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Reši li ga Stankoviću?

Može li da se optimizije u jednom koraq???

offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

Nisam jos... nisam imao vreme.

Inace, pitao sam Saleta (zzzl), da li moze onaj gore regex da se doradi tako da vraca samo ono izmedju navodnika, da ne koristim posle toga substr i slicne funkcije vec sve u jednom koraku.

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

imam problem
kako nasa slova da prihvati ?
   $patternadresa = '/^[a-zA-Z0-9 _.-]{5,40}$/';    if(!preg_match($patternadresa, $adresa))

kako da obrati i šđčćž ?
probao sam i &# 262; (bez space jer bi mi forum pretvorio ovo u slovo) i slicne stvari... neka slova hoce da prihvati neka ne, ali ova koja prihvati registruje kao 6 karaktera tako da je maksimu onda 6 takvih slova jer je limit duzine 40....

bilo kakva pomoc bi dobrodosla

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Citat:
If you use unicode (utf-Cool, you can match them easily with the unicode character property \pL (match any unicode letter) and the "u" modifier, so e.g.

<?php preg_match("/[\w\pL]/u",$var); ?>

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

hvala blood uspeo sam, ne bas tako ali je pomoglo Smile

Ko je trenutno na forumu
 

Ukupno su 989 korisnika na forumu :: 21 registrovanih, 5 sakrivenih i 963 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: AC-DC, ArchaBasha, bato, BSD, Dimitrije Paunovic, DonRumataEstorski, ILGromovnik, Istman, kybonacci, Lubica, Milos82, Nobunaga, nuke92, Parker, pein, sovanova95, Srle993, uruk, vaso1, wolverined4, zlaya011