Ricerca testo con espressioni regolari

Ciao ragazzi, sto   :D con le espressioni regolari  :(

Se io ho un testo:

Lorem ipsum dolor sit amet esta pa, consectetuer adipiscing elit, sed diam nonummy 

nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. 

Ut wisi enim ad minim veniam, quis nostrud exerci. {valore1}

Lorem ipsum dolor sit amet esta pa, 

consectetuer {valore2} adipiscing elit, sed diam nonummy nibh euismod 

tincidunt ut laoreet dolore magna aliquam erat volutpat. 

Ut wisi enim ad minim veniam, quis nostrud exerci.

e volessi estrarre in questo caso {valore1} e {valore2} (le graffe sono dei delimitatori, quindi se non vengono estratte fa lo stesso) considerando che potrei averne un'infinità di questi valori, dove valore1 e valore2 corrispondono a testo alfanumerico, come faccio?  :master:

Mi vergogno a postare i tentativi invani che ho fatto   ::)

inviato 10 anni fa
Lex84
X 0 X

Anche io non sono per niente pratico con le espressioni regolari, non ti preoccupare! :D

Vediamo se ho una dritta:

[a-z0-9\?]*({valore1})|({valore2})[a-z0-9\?]*
risposto 10 anni fa
LonelyWolf
modificato 10 anni fa
X 0 X

Ho fatto questo tentativo prendendo spunto dal tuo suggerimento:

eregi("(\{[a-z0-9]*\})", 'Testoqualsiasi {valore1} altrotestoqualsiasi {valore2}', $reg);

echo "$reg[0]";

Funziona a metà, nel senso che mi stampa a schermo solo {valore1}, lo stesso se faccio echo "$reg[1]";

Ho omesso | dal tuo esempio perchè possono esserci più di 2 valori racchiusi tra le {} e il testo tra queste due parentesi non sarà necessariamente valore1 o valore2 ma potrebbe essere ad esempio {dfgdgdg}

 :buck:

risposto 10 anni fa
Lex84
X 0 X
<?php
$testo = "Lorem ipsum dolor sit amet esta pa, {valore1} consectetuer adipiscing elit, sed diam nonummy 
nibh euismod tincidunt ut {valore2} laoreet dolore magna aliquam erat volutpat. 
Ut wisi enim ad minim veniam, quis nostrud exerci. {valore3}";

preg_match_all("/{.*}/",$testo,$match);

print_r($match);
?>

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda