Sbarazzarsi delle barre in avanti. Non hai bisogno di quelli in Java. Inoltre, il sapore di regex di Java non riconosce gli switch come /g
e /i
; quelli sono controllati da costanti in java.util.regex.Pattern
.
Gli unici interruttori regex Javascript che hanno senso nel mondo Java sono /i
e /m
. Queste mappe sono disponibili a Pattern.CASE_INSENSITIVE
e Pattern.MULTILINE
(è possibile utilizzare questi interruttori quando si crea un'espressione regolare dalla classe Pattern
oppure è possibile utilizzarli in linea. Lo mostrerò in seguito).
Il /g
non esegue il mapping su alcunché, ma è possibile controllare il comportamento di sostituzione utilizzando String.replaceAll
rispetto a String.replaceFirst
.
Per ottenere il codice per lavorare, dovreste fare qualcosa di simile:
strOutput.replaceAll("{{[^]*?}}", "");
Se si voleva utilizzare gli interruttori, è necessario fare aggiungere qualcosa come (?i)
all'inizio della regex.
Non è possibile utilizzare String.replace
perché contiene un CharSequence
per il primo argomento e non un'espressione regolare.
Inoltre, tieni presente che i metodi di "regex rapido" offerti dalla classe String
potrebbero non funzionare come previsto. Questo perché quando si specifica un pattern (diciamo abc
) come un'espressione regolare per matches
ad esempio, il modello effettivo visto da Java è ^abc$
. Quindi abc
corrisponderà, ma non lo sarà il bc
.
C'è più informazioni here.
fonte
2011-01-25 00:00:53
Puoi pubblicare il Java che hai creato per darti l'errore? –