Come posso risolvere questo problema di regex Java?Regex: come catturarlo? (un gruppo nidificato all'interno di un gruppo ripetuto)
ingresso:
some heading text... ["fds afsa","fwr23423","42df f","1a_4([email protected]#","3240acg!g"] some trailing text....
Problema: Vorrei catturare tutto tra le virgolette. (Esempio: fds AFSA, fwr23423, ecc)
Ho provato il seguente schema:
\[(?:"([^"]+)",?)+\]
Ma quando si esegue una Matcher.find(), il risultato sarà una StackOverflowError, quando si utilizza un input più grande (ma funziona per un piccolo input, questo è un bug in Java). E anche se funzionasse, matcher.group (1) darà solo "3240acg! G".
Come posso risolvere questo problema? (Oppure è necessario l'uso di più schemi, in cui il primo motivo rimuove le parentesi?)
Quindi sono necessari più schemi/corrispondenze. Ho trovato qualcosa di simile qui: http://answers.oreilly.com/topic/222-how-to-find-a-match-within-another-match-in-a-regular-expression/ – Devabc
Bene, OK, lì è un altro modo, ma non penso che sia un buon modo. L'ho aggiunto alla mia risposta. –