ugrás a tartalomhoz

Reguláris kifejezések

Anonymous · 2004. Nov. 1. (H), 13.10
hali,

a következő lenne a kérdésem:

van egy változóm, amiben mondjuk a következő van: [ code=php ] valami [/ code]

azért raktam közé szóközt, mert akkor a drupal kódnak értelmezné :) tehát valójában ott nincs szóköz!

ebből szeretném kinyerni a nyelvet (jelen esetben azt, hogy php), és magát a kódot. már rég óta próbálkozom, de nem igazán értem a reguláris kifejezéseket. valaki megmondaná, ezt hogy lehet megcsinálni? köszi
 
1

ne

pp · 2004. Nov. 1. (H), 14.27
preg_match_all('/\\[code=(.*?)\\](.*?)\\[\\/code\\]/',$valtozo,$talalatok,PREG_SET_ORDER);
print_r($talalatok);
2

Mintaillesztő kifejezések

Bártházi András · 2004. Nov. 1. (H), 14.51
A kulcsszó, talán ettől jobban megérted, hogy mintaillesztő kifejezésnek kell hívni a reguláris kifejezéseket. Azaz úgy fogd fel, hogy készítened kell egy mintasablont, ami illeni fog az adott értékre, amire illeszted. Ugyanaz, mint a megoldósablonok esetén. Kivágsz egy "a" alakot, ráteszed a papírlapra, s ha van a lapon "a" betű, egyből látod. Kivágsz egy "a[bc]d" mintát, ráteszed a papírlapra, s ha abd vagy acd van valahol a lapon, egyből látod. Kb. ennyi az egész nagy tudomány a mintaillesztő kifejezésekkel kapcsolatosan... :) No jó, tudom, nem ennyi, de talán segít, ha így próbálod szemlélni a dolgot!

-boogie-
3

csúnyán, de sikerült

Anonymous · 2004. Nov. 1. (H), 14.59
ezt használtam:

$patternem = "/(\[([\w]+)(\=(\w+))[<]*\])(.*)(\[\/\\2\])/";

nem szép, sőt van benne fölösleges rész is, de legalább működik.
azért köszönöm a segítséget