Sto osservando un'esercitazione di regex Java, il titolo si spiega praticamente da solo. Sembra che Matcher.lookingAt() stia cercando di abbinare l'intera stringa. È vero?Qual è la differenza tra Matcher.lookingAt() e find()?
risposta
Il documentation for Matcher.lookingAt spiega chiaramente la regione lookingAt
cerca di far corrispondere:
Come il metodo
matches
, questo metodo inizia sempre all'inizio della regione; a differenza di questo metodo, non richiede che l'intera regione sia abbinata.
Quindi no, lookingAt
non richiede la corrispondenza dell'intera stringa. Allora qual è la differenza tra lookingAt
e find
? Dalla Matcher Javadoc overview:
- Procedimento
matches
tenta di corrispondere l'intera sequenza di ingresso contro il pattern.- Il metodo
lookingAt
tenta di far corrispondere la sequenza di input, iniziando dall'inizio, contro il modello.- Il metodo
find
analizza la sequenza di input alla ricerca della sottosequenza successiva che corrisponde al modello.
lookingAt
comincia sempre all'inizio, ma find
cercherà un posizione di partenza.
Un altro modo, matches
ha un inizio e una fine fissi, lookingAt
ha un inizio fisso ma una fine variabile, e find
ha una variabile di inizio e fine.
lookingAt()
inizia sempre a controllare dall'inizio e restituisce true
quando incontra una corrispondenza.
find()
può trovare più corrispondenze, poiché memorizza la posizione corrente, proprio come un iteratore.
Chi find()
da http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#find%28%29:
Questo metodo comincia all'inizio della regione di questo matcher, o, nel caso di una chiamata precedente del metodo ha avuto successo e il matcher non da allora è stato ripristinato, al primo carattere non corrisponde alla partita precedente.
- 1. Qual è la differenza tra find, where e find_by_id?
- 2. Qual è la differenza tra $ get e $ find in JavaScript?
- 3. Differenza tra Mac `find` e Linux` find`
- 4. Differenza tra 'find -delete' e 'rm -rf'?
- 5. Qual è la differenza tra = e: =
- 6. Qual è la differenza tra Verilog! e ~?
- 7. Qual è la differenza tra? : e ||
- 8. qual è la differenza tra [[], []] e [[]] * 2
- 9. Qual è la differenza tra $ e $$?
- 10. Qual è la differenza tra ("") e (null)
- 11. Qual è la differenza tra dict() e {}?
- 12. Qual è la differenza tra " " e ""?
- 13. Qual è la differenza tra {0} e ""?
- 14. Qual è la differenza tra `##` e `hashCode`?
- 15. Qual è la differenza tra {0} e +?
- 16. Qual è la differenza tra .ToString() e + ""
- 17. qual è la differenza tra:.! e: r !?
- 18. Qual è la differenza tra find, findAll e findQuery in ember-data
- 19. qual è la differenza tra "con" e "carico" in laravel
- 20. Qual è la differenza tra "$ (questo)" e "questo"?
- 21. jQuery: Qual è la differenza tra "$ (questo)" e "questo"?
- 22. Qual è la differenza tra "è Nessuno" e "== Nessuno"
- 23. Unix: Qual è la differenza tra la fonte e l'esportazione?
- 24. Qual è la differenza tra il callback e la promessa
- 25. Qual è la differenza tra la sezione .got e .got.plt?
- 26. Qual è la differenza tra la lista() e []
- 27. Qual è la differenza tra GHC e la piattaforma Haskell?
- 28. Qual è la differenza tra sé e la finestra?
- 29. Qual è la differenza tra la cartella vim72 e vimfiles?
- 30. Qual è la differenza tra la serratura e RLock
Grazie i dettagli sono belli! :) Anche l'utilizzo delle corrispondenze e dei metodi lookingAt del tutorial tocca anche questo argomento: https://docs.oracle.com/javase/tutorial/essential/regex/matcher.html –