Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] Espressioni regolari su un array

    Ho cercato dappertutto le espressioni regolari e ho trovato un pò di pagine, ma nessuna che spiegasse in modo comprensibile come usarle...

    Dovrei verificare su di un array pieno di stringhe se è presente almeno una cifra numerica nelle stringhe....
    Ho provato con questa espressione:

    codice:
    for(int i=0;i<array.length;i++){
        if(array[i].matches("\\d+"))
             return true;
    }
    ma non funziona... \\d non vorrebbe dire "numero" e + "se ce n'è uno o più"? Tra l'altro il numero potrebbe essere anche prima delle cifre...devo scrivere "\\+d+" ??
    Per fare un esempio, deve dare true sia che ci sia "5ddd", sia con "dd5", sia con "5ff4656".

    Grazie in anticipo per l'aiuto!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Espressioni regolari su un array

    Originariamente inviato da Lasentinella
    codice:
    for(int i=0;i<array.length;i++){
        if(array[i].matches("\\d+"))
             return true;
    }
    matches() controlla che l'intera stringa corrisponda alla espressione regolare. Quella che hai messo verifica se la stringa contiene tutti digit!!

    L'espressione corretta è: ".*\\d+.*"
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [JAVA] Espressioni regolari su un array

    Originariamente inviato da andbin
    matches() controlla che l'intera stringa corrisponda alla espressione regolare. Quella che hai messo verifica se la stringa contiene tutti digit!!

    L'espressione corretta è: ".*\\d+.*"
    Grazie mille , funziona!
    Posso solo chiederti di tradurmi l'espressione?
    Perché i punti capisco possano indicare "Qualsiasi carattere", ma gli asterischi messi in quei punti e il + non tanto...

    grazie ancora

  4. #4
    Il . indica "qualsiasi carattere (tranne \n e \r)"

    L'asterisco sta ad indicare "zero o più occorrenze dell'espressione che sta immediatamente a sinistra dell'asterisco stesso". Quindi la sequenza .* indica "zero o più occorrenze di qualsiasi carattere".

    Il \\d indica qualsiasi numero.

    Il + indica "una o più occorrenze dell'espressione immediatamente a sinistra del + stesso". Quindi la sequenza \\d+ indica "una o più occorrenze di una qualsiasi cifra"

    Infine il .* ha lo stesso significato di prima.

    Spero di essere stato abbastanza chiaro

  5. #5
    Originariamente inviato da R@ve M@ster
    Il . indica "qualsiasi carattere (tranne \n e \r)"

    L'asterisco sta ad indicare "zero o più occorrenze dell'espressione che sta immediatamente a sinistra dell'asterisco stesso". Quindi la sequenza .* indica "zero o più occorrenze di qualsiasi carattere".

    Il \\d indica qualsiasi numero.

    Il + indica "una o più occorrenze dell'espressione immediatamente a sinistra del + stesso". Quindi la sequenza \\d+ indica "una o più occorrenze di una qualsiasi cifra"

    Infine il .* ha lo stesso significato di prima.

    Spero di essere stato abbastanza chiaro
    CHIA-RI-SSI-MO!
    Grazie infinite ancora

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