Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA]sintassi REGEXP

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    80

    [JAVA]sintassi REGEXP

    Ciao a tutti,
    premetto che non conosco bene le regexp..vorrei contare il numero di volte che una sottostringa viene trovata nella stringa..

    codice:
    Matcher matcher = pattern.matcher("bla bla , torino, blablabla, torino");
               boolean trovato = false;
               while (matcher.find()) {
                   trovato = true;
                   System.out.println("[" + i + " - " + "bla bla , torino, blablabla, torino"+ "] " + matcher.group() + " > da " + matcher.start() + " a " + matcher.end());
    
               }
               if (!trovato) {
                   System.out.println("[" + i + " -  " + "bla bla , torino, blablabla, torino"+ "] NESSUNA CORRISPONDENZA");
               }
    ottengo però solo il matching con la prima occorrenza! Uso sicuramente male le i Reluctant Quantifiers ma dalla javadoc 6 non riesco a capire dove sbaglio..

    codice:
     
    [0 - bla bla , torino, blablabla, torino] bla bla , torino > da 0 a 16

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Se facessi vedere come è stato creato il Pattern ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    80
    scusa

    codice:
    Pattern pattern = Pattern.compile("^(?i).*?,[\\s]*?torino", Pattern.DOTALL);

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    80
    ho trovato!!
    Grazie cmq..
    codice:
    Pattern pattern = Pattern.compile("(?i).*?,[\\s]*?torino", Pattern.DOTALL);

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Marco_P
    codice:
    Pattern pattern = Pattern.compile("(?i).*?,[\\s]*?torino", Pattern.DOTALL);
    Invece di
    [\\s]*?
    puoi tranquillamente mettere
    \\s*

    E invece di mettere (?i) potresti aggiungere il flag CASE_INSENSITIVE in OR con DOTALL (come hai fatto comunque è giusto).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.