LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Diskuze: článek PHP (22) - Regulární výrazy

regex
(link)
12.7.2004 14:13
by default
Věk: ( ~36 let)

Nedávno jsem napsal PHP třídu na parsování krátkých INI souborů - jak jinak, než regulárními výrazy. Možná je to pomalé, ale rozhodně je to rychlejší, než načtený řádek ze souboru procházet a analyzovat znak po znaku;-)

Re: regex
(link)
12.7.2004 15:24
Petr Zajíc
Věk: ( ~45 let)

To bude urcite rychlejsi. I kdyz v PHP se aji soubory nacitat i po radcich. Mimochodem, pokud se o tridu chcete podelit, muzete ji vlozit do sekce Skriptu na nasem serveru.

preg
(link)
3.11.2005 14:40
Viktor L
myslim, ze ich pouzivaju aj vsetky funkcie zacinajuce sa na preg_...

A este saju nastavit parametre (nepametam si presne synax), ze je to case sensitive (myslim) #i a su dalsie typu #si....
triedy znakov
(link)
24.10.2006 18:58
Adriana
Věk: ( ~41 let)

Pro odchycení mezer bych určite použila radeji triedu pre mezery a tabulátory: [[:blank:]]

Re: triedy znakov
(link)
24.10.2006 21:52
Petr Zajíc
Věk: ( ~45 let)

jj, pak je ještě třída pro všechny "bílé znaky" včetně mezer a nejroztodivnějších konců odstavců... momentálně nevím jak se značí ;-))

Minimalni vyskyt, maximalni vyskyt
(link)
15.2.2007 12:39
slune

Dobry den,
zajimalo by mě, jak se dá pomocí PHP napsat v regulárních výrazech minimální a maximální výskyt?
Fungovala by perlovska konvence:
{,30} - až 30
{30,} - min. 30
{30} - 30
{2,30} - 2 až 30
?

Re: Minimalni vyskyt, maximalni vyskyt
(link)
15.2.2007 13:03
slune

pardon, vyzkoušel jsem to a je to ono... omlouvám, se že špiním forum... :/

cenzura
(link)
9.4.2007 21:08
A.M.

Hmm s tim eregi_replace a spliti by sa dala urobit dobra cenzura nie? Ked tam pouzijeme znak () tak nemusime do poli vypisovat jednotlive sklony vulgarizmov ako v tutorialy o funkciach poli. Dalo by sa to, nie?

Re: cenzura
(link)
10.4.2007 07:43
Petr Zajíc
Věk: ( ~45 let)

Určitě ano. Ale nepřijde mi to o moc kratší...

Metaznaky
(link)
10.2.2008 20:39
Dan Pelíšek
Věk: ( ~28 let)

Dobrý den
není mi jasný význam některých metaznaků uvedených v tabulce. Mohli by ste mi je prosím vysvětlit, nebo uvést příklad situace v kterých se použijí? Jedna se o tyto:
* - "s*t" se mi zdá stejné jako kdybych napsal jenom "t"
+ - "s+t" se mi zdá stejné jako "st"
? - píšete že předchozí znak tam bude minimálně jednou, ale v sloupečku "vyhový" je psst
() - "(obec)" se mi zdá stejné jako "obec"

Re: Metaznaky
(link)
11.2.2008 00:48
Ondřej Čečák (TEAM)
Věk: ( ~32 let)

* znamena zadny nebo nekolik vyskytu daneho znaku. Takze regularni vyraz s*t muze znamenat jenom "t", ale take "sssssssssst".

+ ma podobny vyznam jako *, ale vyzaduje alespon jeden vyskyt daneho znaku. Tedy s+t vyhovi "st", "sssssssssst" ale uz ne jenom "t".

? ma vic vyznamu, muze jit o zadny nebo jeden vyskyt, takze pro s?t to muze byt "pst", ale take "psst" z tabulky.

() uzavira sub-pattern, (obec) na "obec" neni tak zajimave, spis ve spojeni s vyse uvedenymi (obec)* vyhovi "obecobecobecobecobecobecobec".

Re: Metaznaky
(link)
12.2.2008 22:21
Dan Pelíšek
Věk: ( ~28 let)

Děkuju za vysvětlení, jen by mě ještě zajímalo jestli se dají plně nahradit "kratším zápisem". Tím myslím místo "s*t" jenom "t" atd.. jestli to bude fungovat naprosto stejně.

Re: Metaznaky
(link)
13.2.2008 13:08
Ondřej Čečák (TEAM)
Věk: ( ~32 let)

"s*t" funguje na "t", stejne jako na "st" nebo "sssssst".

Re: Metaznaky
(link)
14.2.2008 02:49
Aleš Hakl
Bydliště: Praha

Ono jde spise o to, ze "s*t" je opravdu ekvivalenti s "t" ty kvantifikatory maji smysl az u nejakch lehce slozitejsich pripadu. Napriklad "ab*c" neni totez, jako "ac", napriklad proto, ze vyrazu "ab*c" vyhovuje treba "abc" coz vyrazu "ac" zrejme nevyhovuje.

ereg
(link)
12.10.2008 22:16
Kocmi
Věk: ( ~28 let)

Dobry den, chtel bych se zeptat jestli nekdo nevite proc tenhle script nefunguje spravne:

<?
function kontrola($cislo){
return ereg("^[1234567890\-]+$" , $cislo);
};

$a=kontrola(123); //vrati true
$b=kontrola(0-1); //tohle ale vrati false
?>

Podle me je to bug v PHP, ale nejsem si tim jisty.
Jinak pouzivam 5 verzi PHP.
Diky za odpoved

Re: ereg
(link)
13.10.2008 00:00
Aleš Hakl
Bydliště: Praha

Na debianim PHP 5.2.6-1 to dava ocekavatelne vysledky. A to i s tim prebytecnym backslashem, i kdyz se tomu misto stringu da cislo -1.

Popravde receno, vyvojari PHP jsou zrejme schopni temer vseho, ale nedovedu si predstavit jak by tam chybu tohoto druhu vnesli (PHP si sebou nese pro ucely ereg modulu jakousi implementaci regcomp/regexec vykradenou kdovi odkud, ve ktere dle CVS nijak mnoho php-specifickych zmen neni).

Re: ereg
(link)
13.10.2008 16:53
Kocmi
Věk: ( ~28 let)

Tak se omlouvam, zjistil jsem ze tahle funkce funguje, ja ji totiz zkratil z puvodni ktera mi nefunguje:

eregi("^[abcdefghijklmnopqrstuvwxyz1234567890-_]+$","0-0");

Tahle funkce mi nefunguje spravne. Kdyz dam pryc "_" tak funguje, ale kdyz ho tam vratim tak uz ne.
A pokud zamenim - za _ a bude tam ...67890_-]... tak uz to zacne fungovat. Jinak zpetny lomitko na to nema zadny vliv.
Nevite nekdo proc to funguje az po prehozeni?

Re: ereg
(link)
13.10.2008 18:23
Aleš Hakl
Bydliště: Praha

Protoze - definuje rozsah (pokud LC_CTYPE=C, tak byste ten vas sileny vyraz mohl zapsat jako ^[a-z0-9_-]+$). Tohoto vyznamu se zbavyte tim, ze tento znak uvedete tam, kde rozsah nedava syntakticky smysl, tedy jako prvni nebo posledni znak vyctu.

Backslash vliv ma v tom, ze uvnitr hranatych zavorek nema zadny specialni vyznam a je to znak jako kazdy jiny.

Re: ereg
(link)
13.10.2008 22:31
Kocmi
Věk: ( ~28 let)

Aha, tak dekuji za odpoved. O tom rozsahu jsem vedel proto sem pred tu pomlcku cpal zpetny lomitko a myslel jsem ze to bude fungovat.

DISKUZE

regex 12.7.2004 14:13 by default
L Re: regex 12.7.2004 15:24 Petr Zajíc
preg 3.11.2005 14:40 Viktor L
triedy znakov 24.10.2006 18:58 Adriana
L Re: triedy znakov 24.10.2006 21:52 Petr Zajíc
Minimalni vyskyt, maximalni vyskyt 15.2.2007 12:39 slune
L Re: Minimalni vyskyt, maximalni vyskyt 15.2.2007 13:03 slune
cenzura 9.4.2007 21:08 A.M.
L Re: cenzura 10.4.2007 07:43 Petr Zajíc
Metaznaky 10.2.2008 20:39 Dan Pelíšek
L Re: Metaznaky 11.2.2008 00:48 Ondřej Čečák
  L Re: Metaznaky 12.2.2008 22:21 Dan Pelíšek
    L Re: Metaznaky 13.2.2008 13:08 Ondřej Čečák
      L Re: Metaznaky 14.2.2008 02:49 Aleš Hakl
ereg 12.10.2008 22:16 Kocmi
  L Re: ereg 13.10.2008 00:00 Aleš Hakl
    L Re: ereg 13.10.2008 16:53 Kocmi
      L Re: ereg 13.10.2008 18:23 Aleš Hakl
        L Re: ereg 13.10.2008 22:31 Kocmi




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

18.6.2018 0:43 /František Kučera
Červnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 21. 6. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: F-Droid, aneb svobodný software do vašeho mobilu. Kromě toho budou k vidění i vývojové desky HiFive1 se svobodným/otevřeným čipem RISC-V.
Přidat komentář

23.5.2018 20:55 /Ondřej Čečák
Od pátku 25.5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spostu zajímavých přednášek, workshopů a také na Release Party nového openSUSE leap 15.0. V na stejném místě proběhne v sobotu 26.5. i seminář o bezpečnosti CryptoFest.
Přidat komentář

20.5.2018 17:45 /Redakce Linuxsoft.cz
Ve čtvrtek 31. května 2018 připravuje webový magazín BusinessIT ve spolupráci s Best Online Média s.r.o. pátý ročník odborné konference Firemní informační systémy 2018. Akce proběhne v kongresovém centru Vavruška (palác Charitas), Karlovo náměstí 5, Praha 2 (u metra Karlovo náměstí) od 9:00 hod. dopoledne do cca 15 hod. odpoledne. Konference je zaměřena na efektivní využití firemních informačních systémů a na to, jak plně využít jejich potenciál. Podrobnější informace na webových stránkách konfrence.
Přidat komentář

14.5.2018 7:28 /František Kučera
Květnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 17. 5. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: Audio – zvuk v GNU/Linuxu.
Přidat komentář

7.5.2018 16:20 /František Kučera
Na stránkách spolku OpenAlt vyšla fotoreportáž Pražské srazy 2017 dokumentující srazy za uplynulý rok. Květnový pražský sraz na téma audio se bude konat 17. 5. 2018 (místo a čas ještě upřesníme).
Přidat komentář

17.4.2018 0:46 /František Kučera
Dubnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 4. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tématem tohoto srazu bude OpenStreetMap (OSM) aneb svobodné mapy.
Přidat komentář

16.3.2018 22:01 /František Kučera
Kulatý OpenAlt sraz v Praze oslavíme klasicky: u limonády a piva! Přijďte si posedět, dát si dobré jídlo a vybrat z mnoha piv do restaurace Kulový blesk, který najdete v centru Prahy nedaleko metra I. P. Pavlova na adrese Sokolská 13, Praha 2. Sraz se koná ve čtvrtek 22. března a začínáme v 18:00. Heslo: OpenAlt. Vezměte s sebou svoje hračky! Uvítáme, když si s sebou na sraz vezmete svoje oblíbené hračky. Jestli máte nějaký drobný projekt postavený na Arduinu, nějakou zajímavou elektronickou součástku, či třeba i pěkný úlovek z crowdfundingové akce, neváhejte. Oslníte ostatní a o zábavu bude postaráno.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

20.2.2018 18:48 / Ivan Majer
portal

20.2.2018 15:57 / Jan Havel
Jak využíváte služby cloudu v podnikání?

16.1.2018 1:08 / Ivan Pittner
verejna ip od o2 ubuntu

15.1.2018 17:26 / Mira Harvalik
Re: Jak udělat HTML/Javascript swiping gallery do mobilu?

30.12.2017 20:16 / Michal Knoll
odmocnina

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2018) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze