Espressioni regolari

di il
6 risposte

Espressioni regolari

Ho una stringa e se in queesta stringa ci sono dei caratteri non permessi deve risultare false. Ho sentito che questa cosa la si può fare con le espressioni regolari, come esattamente? Potrei avere un esempio?

i caratteri permessi sono questi : qwertyuioplkjhgfdsazxcvbnm1234567890_ se c'è un caratterenella stringa che non è compreso tra questi deve restituire false. Come si fa?
Poi c'è un'altra stringa e in questa ci devono solo essere lettere, anche straniere, accentate... COme si fa? Grazie mille

6 Risposte

  • Re: Espressioni regolari

    p0ll0 ha scritto:


    Ho una stringa e se in queesta stringa ci sono dei caratteri non permessi deve risultare false. Ho sentito che questa cosa la si può fare con le espressioni regolari, come esattamente? Potrei avere un esempio?
    Es.:
    una stringa deve contenere solo 0 o 1 in qualunque combinazione/quantità ma almeno uno di questi (in pratica un contenuto "binario" es. "1", "010", "00011", "1110", ecc...):
    boolean valido = stringaInput.matches("[01]+");
  • Re: Espressioni regolari

    Ok grazie dell'esempio. Se invece devo fare la email come devo fare?

    Quindi devo vedere che tra chiocciola e punto ci sia scritto qualcosa e anche rima della chioccola e dopo al punto. Come si fa?
  • Re: Espressioni regolari

    p0ll0 ha scritto:


    Ok grazie dell'esempio. Se invece devo fare la email come devo fare?

    Quindi devo vedere che tra chiocciola e punto ci sia scritto qualcosa e anche rima della chioccola e dopo al punto. Come si fa?
    Per validare un indirizzo email con una regex ..... può diventare complesso. Nel senso che si può fare ma la regex non è certo "banale" come l'esempio di prima!
    Fai una ricerca in rete, perché di regex per indirizzi email ne trovi.
  • Re: Espressioni regolari

    Ok grazie, molto gentile. Mettiamo che io devo inserire un nome utente. Il nome utente può contenere solo questi caratteri

    zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPLKJHGFDSAZXCVBNM_ come si fa?
  • Re: Espressioni regolari

    Https://regular-expressions.mobi/tutorial.html?wlr=
  • Re: Espressioni regolari

    p0ll0 ha scritto:


    Mettiamo che io devo inserire un nome utente. Il nome utente può contenere solo questi caratteri

    zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPLKJHGFDSAZXCVBNM_ come si fa?
    Beh ma allora devi ancora "capire" le espressioni regolari! Innanzitutto in Java il supporto alle regex è stato introdotto in Java 1.4 (quindi mooooolto tempo fa).
    Tutti i servizi sulle regex si trovano nel package java.util.regex e le due classi principali sono Pattern e Matcher. Poi altre classi del framework come String e Scanner sfruttano quei servizi.

    La documentazione di tutti i costrutti accettati dalle regex in Java si trova nel javadoc di Pattern.
    Nota che quei costrutti non sono tutti "universali". In altri linguaggi/contesti ci possono essere differenze. Se trovi una regex che è valida per il linguaggio Perl, non è detto che funzioni in Python o in Javascript o in Java.

    Comunque l'esempio di prima: [01]+

    La parte [ ] è una "classe" di caratteri. E' sostanzialmente una "OR" tra più caratteri. [ABC] vuol dire: o A o B o C. E attenzione che in una classe di caratteri si possono anche mettere degli intervalli es. [A-Z] vuol dire da A alla Z. E si può anche fare una "negazione" della classe di caratteri.

    Il "+" vuol dire "uno o più" del precedente costrutto (che nell'esempio è l'intera classe di caratteri).

    Da qui, deduci tu come "zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPLKJHGFDSAZXCVBNM_" può essere usata.
Devi accedere o registrarti per scrivere nel forum
6 risposte