Autor Zpráva
Reg
Profil
Potřebuju zapsat do regexpu něco jako že v tom daném úseku NESMÍ být obsažen řetězec např. </div>.
Pokud by šlo o jeden znak, je to takto: [^x], ale o nějakou skupinu znaků???
Pozor! Vůbec to nemyslím jako v celym řetězci ale v nějakym úseku, který nahrazuju (ereg_replace)
Příklad:
Potřebuju nahradit tag <div> tagem <span class="div"> a samozřejmě jeho ukončením.
má to tedy převíst např.: Tento <div>text</div> atp.
na toto: Tento <span class="div">text</span> atp.
Toto by šlo zapsat takto: ereg_replace("<div(.*)>(.*)</div>",'<span class="div"\\1>\\2</span>',"text");
Ovšem tento zápis nefunguje, pokud je v textu obsaženo více "divů", příklad:
Toto: "text <div>text</div> text <div>text</div> text"
to nahradí tímto: "text <span class="div">text</div> text <div>text</span> text"
ovšem má to nahradit tímto: "text <span class="div">text</span> text <span class="div">text</span> text"
Toto by šlo zřejmě opravit tím, že v regexpu místo (.*) mezi divy napíšu, že to nesmí obsahovat ukončující tag </div> (nemůžu tam napsat např. [^<>] protože uvnitř může být jiný tag), OVŠEM OTÁZKOU ZŮSTÁVA:
JAK?
Omlouvám se za to že to je tak dlouhé, ale když jsem se na to ptal někoho nejmenovaného tak to nemohl pochopit. ;)
halogan
Profil
preg_replace("/<div(.*)>(.*)</div>/U",'<span class="div"\\1>\\2</span>',"text");
Reg
Profil
OK, dík a nějaké vysvětlení pro blbé jako já???
halogan
Profil
.* u POSIX (ereg) nabehne na konec retezce a pak jde smerem k zacatku dokud neuspokoji dalsi cast masky. PCRE (preg_*) vsak nabizi mod U (ungreedy), ktery si veme jen tolik, kolik mu staci. Vice na Interval.cz a PCRE serialu.
Falocn16
Profil *
aj ja mam problem s regularnymi vyrazmi. chcem spravit,aby sa nemohlo zadat ako nick ine znaky ako a-z, cisla a _ . v podmienke mam zapisane
ELSEIF ( !ereg("[0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ _]", $_POST[nick]) ) 

{
ECHO "<p style=\"color: #990000\">Je zakazane pouzivat specialne znaky <BR>";
$reg_false = false;
}


Ale pokial sa daju pismena a potom nejaky ten specialny znak, tak to zoberie.
A tiez neviem, ako zapisat, aby mohlo byt iba 9 cisel, pripadne menej, inak to vyhodi chybu.

Za help budem moc moc vdacny. A v pripade vysvetlenia ako sa to ma vlastne spravne zapisovat este vdacnejsi. ale stacila by aj nejaka dost dobra stranka o tom, ako sa maju regulary zapisovat.
diky
Falcon16
Profil
hups, zle napisany nick, sorry. toto bola odo mna ta blba otazka
Reg
Profil
ereg("[0-9a-zA-Z _]{1,9}",$_POST['nick'])
to v hranatych zavorkach se da zkratit a to {1,9} znamena ze to muze mit 1-9 znaku (muzes to zmenit).
Snad to tak je.
fox
Profil *
ereg("[0-9a-zA-Z _]{1,9}",$_POST['nick'])
to v hranatych zavorkach se da zkratit a to {1,9} znamena ze to muze mit 1-9 znaku (muzes to zmenit).
Snad to tak je.


....není. Tomu vyhovuje jakýkoli výraz, kde se opakuje písmeno nebo číslo 1-9x za sebou, ale za tím či před tím může být cokoli...
Reg
Profil
Tak ereg("^[0-9a-zA-Z _]{1,9}$",$_POST['nick'])
Toto téma je uzamčeno. Odpověď nelze zaslat.

0