Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538

    [PHP] - Problema con le espressioni regolari

    Devo validare una stringa tramite un espressione regolare in questo modo:

    Nell stringa ci deve essere almeno una parola di un determinato gruppo, ma nn ce ne deve essere nessuna di un altro gruppo. Esempio

    Voglio verificare che in una stringa ci sia un parola qualsiasi tra Pippo, Paperino o Topolino, ma nn ci deve essere Minni. quindi

    "Paperino e sfortunato" (valida)
    "Paperino è amico di Topolino" (valida)
    "Topolino sta con Minni" (non valida)

    Il tutto vorrei farlo con un unica chiamata ad eregi.
    Come potrei fare?

  2. #2
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    up!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    $IsValid=!(strpos($str,"Minni")) && ((strpos($str,"Topolino") || strpos($str,"Pippo")) || strpos($str,"Paperino"));

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    non l'ho provata ma dovrebbe essere corretta, la funzione strpos che è propria delle stringhe

    int strpos (string to search, string to find [, int offset])

    cerca una stringa (string to find) in un'altra (string to search) e restituisce la posizione del primo carattere della prima volta che si trova detta stringa partendo da sinistra; se non viene trovata restituisce FALSE, ed ecco il perchè dell'utilizzo di questa funzione per risolvere il tuo problema

  5. #5
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    se leggi bene il mio post vedrai che avevo chiesto se era possibile farlo con un unica chiamata a funzione. Praticamente vorrei chiamare una sola volta la funzione eregi passandole una stringa in cui vengano specificate le parole che ci possono essere e quelle che non ci possono essere.

    Lo so che può sembrare strano volerlo fare con un unica chiamata, ma a me serve cosi!

    Finora sono riuscito a passare solo le parole che ci possono essere, ma nn riesco a indicare quelle che nn ci possono essere:

    codice:
    if(eregi("pippo|topolino|paperino", $s))
    con questa unica chiamata viene verificata l'esistenza in $s di una delle treparole. come fare a specificare le parole che nn ci possono essere?

  6. #6
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    up

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 © 2024 vBulletin Solutions, Inc. All rights reserved.