Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88

    Espressione regolare per prelevare le parole all'interno di una graffa in una frase

    ho provato cosi
    codice:
    $contenuto = "prova messaggio di email, {nome che inserisce} è l'attributo nome, {cognome che inserisce} questo invece è l'attributo cognome e poi ci sono altri campi come {oggetto che inserisce}";
                 $regex = "\{[a-z]\}"; //prende i caratteri all'interno della parentesi graffa
                 $res= preg_match($regex,$contenuto);
    alla fine vorrei ottenere in una variabile (o in array):
    {nome}
    {cognome]
    {oggetto}
    il problema è che la variabile $res restituisce sempre false, di conseguenza non riesco ad andare avanti.
    Dove ho sbagliato?
    grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova cosi.

    Codice PHP:
    <?php
    $contenuto 
    "prova messaggio di email, {nome che inserisce} è l'attributo nome, {cognome che inserisce} questo invece è l'attributo cognome e poi ci sono altri campi come {oggetto che inserisce}";             
    $regex "/\{[^}]*\}/"//prende i caratteri all'interno della parentesi graffa             
    preg_match_all($regex,$contenuto,$res);
    print_r($res);
    ?>

    La tua "\{[a-z]\}"; non poteva andare perchè :
    • mancavano i caratteri d'inizio e di fine (per esempio /)
    • [a-z] prendi i caratteri da a a z ma c'è anche lo spazio. Manca \s !!!
    • [a-z] prendi un solo carattere. Manca * per dire che possono esserci da 0 a n.


    Poi hai usato preg_match mentre ci vuole preg_match_all per prendere tutti i valori.

    Avresti dovuto scrivere $regex = "/\{[a-z\s]*\}/";

    Comunque oltre agli spazi potresti avere apici o altri segni. Quindi è più semplice dire "prendo tutto quello che non corrisponde ad una graffa" => "/\{[^}]*\}/";
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.