2013-09-25 14 views
5

ho provato questo in Test.javaRegex non funziona in Velocity Template

String regex = "<\\s*br\\s*/*\\s*>"; 

String test1 = "<br/>"; 

System.out.println(test.replaceAll(regex, " "));` 

Ma quando provo la stessa cosa in un modello di velocità `

#set($brRegex = "<\\s*br\\s*/*\\s*>") 
#set($imageDescription = $imageDescription.replaceAll($brRegex, " "))` 

E:

#set($imageDescription = $imageDescription.replaceAll("<\\s*br\\s*/*\\s*>", " "))` 

Entrambi non funzionano. Mi sto perdendo qualcosa?

+0

Benvenuti in SO, RMVinodh. – Brian

+0

Grazie Brian, SO è un ottimo posto. – RMVinodh

risposta

6

Ometti i backslash aggiuntivi. Non c'è bisogno di sfuggire a loro. Vedi Velocity Template - regular expressions

#set($brRegex = "<\s*br\s*/*\s*>") 
#set($imageDescription = $imageDescription.replaceAll($brRegex, " "))` 
+1

Grazie per la risposta. Quando ho rimosso i backslash extra, questo è quello che vedo. Causato da: org.apache.velocity.exception.ParseErrorException: Errore lessicale: org.apache.velocity.runtime.parser.TokenMgrError: errore lessicale alla riga 1, colonna 20. Rilevato: "s" (115), dopo: "\ "<\\" – RMVinodh

+0

mi sembra che l'errore suggerisce che ci sono ancora due barre prima del 's' – joescii

+0

Grazie per la rapida risposta. Questo è quello che ho adesso ' #SET ($ brRegex = " <\ s * br \ s */* \ s *> ") #set ($ returnd =" < br > ") $ returnd.matches ($ brRegex) ' – RMVinodh

Problemi correlati