Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da pikiuz Visualizza il messaggio
    Pattern pattern = Pattern.compile("\\[([^\\[]+)\\]");
    Se volevi solo trovare le occorrenze di [ ..... ] allora sì, basta 1 regex e il find().

    Comunque la tua espressione non è correttissima. È più corretta:

    "\\[([^\\]]+)\\]"

    Il ^ all'inizio di una "classe" di caratteri [ ] serve a negare il senso. Quindi [^X]+ vuol dire una sequenza di 1 o più caratteri che non contiene X. In una sequenza ABCRGXFRG matcha solo ABCRG.
    Pertanto la regex pura [^\]]+ vuol dire una sequenza che non contiene ']'. Questo serve per trovare più velocemente il ] di terminazione del tuo pattern, evitando che il motore delle regex vada a "consumare" subito tutto l'input causando poi backtracking se avessi usato es. .*
    Insomma, è una ottimizzazione.
    Ultima modifica di andbin; 30-07-2015 a 22:49
    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.