Visualizzazione risultati 1 fino 9 di 9

Discussione: Aiuto espressioni regolari

  1. #1
    Guest

    Predefinito Aiuto espressioni regolari

    Salve a tutti, ho cercato, ma con le espressioni regolari proprio non ci capisco niente. Io ho un codice del genere:

    <option value="Afghanistan">Afghanistan </option>
    ma vorrei che con un preg_replace mi individuasse soltanto ciò che è all'interno del tag option, cioè Afghanistan. Sapete aiutarmi? Grazie mille in anticipo!

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    La funzione preg_replace() non restituisce la stringa ottenuta dall'espressione regolare, ma la sostituisce solamente con un'altra.

    Invece per estrarre la stringa ottenuta dalla tua espressione regolare di consiglio di utilizzare la funzione preg_match

    Dai ad esempio un'occhiata qui:

    http://www.sergiorinaudo.com/estrarr...egolare-regex/

    Non so se fa al caso tuo, ma è l'unico esempio che ho trovato su internet.

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Ho fatto una cosa del genere ma niente! Dove sbaglio?

    $htmlContentString = '<option value="Afghanistan">Afghanistan</option>'; // stringa contenente html
    $pattern = '#\<option value="(.*?)"\>#si';
    preg_match($pattern,$htmlContentString,$matches);

  4. #4
    Guest

    Predefinito

    così invii i risultati alla variabile (che è un array) $matches.

    Per vederli devi stamparlo

    Codice PHP:
    $htmlContentString = '<option value="Afghanistan">Afghanistan</option>'; // stringa contenente html
    $pattern = '#\<option value="(.*?)"\>#si';
    preg_match($pattern,$htmlContentString,$matches);

    print_r($matches);

  5. #5
    Guest

    Predefinito

    Si, l'avevo fatto, ma non va :(

  6. #6
    Guest

    Predefinito

    ho eseguito proprio quel codice e il risultato è:

    Codice:
    Array ( [0] =>
    [1] => Afghanistan )
    per cui se provi a fare un

    Codice PHP:
    echo $matches[1]
    avresti il risultato sperato.

  7. #7
    Guest

    Predefinito

    Io non so le espressioni regolari, ma ti traggo una citazione da .Net Magazine:
    "Le espressioni regolari sono la bestia nera di ogni programmatore"

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da pumpikprogram Visualizza messaggio
    Io non so le espressioni regolari, ma ti traggo una citazione da .Net Magazine:
    "Le espressioni regolari sono la bestia nera di ogni programmatore"
    Perchè ti scaldi?
    Sono una bestia per la realilzzazione dei pattern non nell'uso degli strumenti.
    E in ogni caso il fatto che siano una cosa non banale dovrebbe spingerti ad approfondire la cosa non a cercare la pappa pronta.

  9. #9
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    L'espressioni regolari sono un potente mezzo per piegare qualsiasi stringa al tuo volere.
    Nel tuo caso, però, non fai nulla di complesso; sono le operazioni più semplici e sicuramente la citazione di ".Net Magazine" di cui parli non si riferisce a queste.

    La soluzione proposta da simpleticket dovrebbe andare benissimo, tuttavia ne propongo un'altra direttamente con preg_replace:
    Codice PHP:
    $htmlContentString = '<option value="Afghanistan">Afghanistan</option>'; // stringa contenente html
    $replace = preg_replace('/<option value="(.+)">.+<\/option>/U', '\\1', $htmlContentString);

    echo
    $replace; // Afghanistan
    In caso di problemi, aggiungi i modificatori i e s
    Ultima modifica di javascripter : 23-07-2012 alle ore 14.03.56

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •