Regular expression problem

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Regular expression problem

Δημοσίευση από cherouvim » 21 Αύγ 2005 00:14

Κώδικας: Επιλογή όλων

echo ereg_replace("\[foo\](.*)\[\/foo\]", "[bar]\\1[/bar]", "[foo]bla bla[/foo] foo [foo]jar tar[/foo]");
Το παραπάνω regular expression μου επιστρέφει [bar]bla bla[/foo] foo [foo]jar tar[/bar]. Κάνει match τα ακριανά [foo] tags και όχι τα 2 pairs ξεχωριστά. Διάβασα στο http://www.regular-expressions.info/repeat.html για το Laziness και το Greediness των regular expressions. Το laziness το πετυχαίνεις με τον χαρακτήρα ? αλλά δυστυχώς αυτός δεν υποστηρίζετε στην PHP και επιστρέφει Warning: ereg_replace(): REG_BADRPT. Ξέρει κανείς πως θα κάνω το '*' μου lazy έτσι ώστε να σταματήσει στο πρώτο [/foo] που θα συναντήσει και όχι στο τελευταίο;

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Regular expression problem

Δημοσίευση από Rapid-eraser » 21 Αύγ 2005 01:03

dokimase kalitera me PCRE kai oxi ta POSIX
preg_* ektos tou oti eivai pio divata eivai kai afta pou 8a paramivouv sto telos evo ta posix regs 8a tnv kavouv me elafra siga siga
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Regular expression problem

Δημοσίευση από cherouvim » 21 Αύγ 2005 14:17

Λύση:

Κώδικας: Επιλογή όλων

echo preg_replace("#\[foo\](.*?)\[/foo\]#", "[bar]\\1[/bar]", "[foo]bla bla[/foo] foo [foo]jar tar[/foo]"); 
thanks to rapid

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Regular expression problem

Δημοσίευση από Cha0s » 21 Αύγ 2005 19:51

Χαίρομαι που επιτέλους βλέπω σοβαρά τόπικς :)

Χαιρετισμούς Γιάννη ;)

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Regular expression problem

Δημοσίευση από cordis » 21 Αύγ 2005 20:10

Cha0s έγραψε:Χαίρομαι που επιτέλους βλέπω σοβαρά τόπικς :)
ναι, και εμάς μας έλειψες, όλο στο awmn μπαίνεις.. ;)
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Regular expression problem

Δημοσίευση από Cha0s » 21 Αύγ 2005 20:13

Μπα και να θέλω δεν μπορώ τώρα!

Αφού είπαμε έχουμε λίμιτ στα 7 ποστ ανά μέρα!
χαχαχαχα

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Regular expression problem

Δημοσίευση από cordis » 21 Αύγ 2005 20:15

τότε κάπου αλλού μπαίνεις και δε βλέπεις σοβαρά topics ;)
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Regular expression problem

Δημοσίευση από Cha0s » 21 Αύγ 2005 20:17

Έλα ρε γρκινιάρη!
Λάθος διατύπωση οκ...

Σοβαρά as challenging!

Τώρα είναι πιο σωστά τοποθετημένο; :) ;)

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Regular expression problem

Δημοσίευση από Rapid-eraser » 21 Αύγ 2005 21:34

etsi etsi !!!
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης