2013-09-25 13 views
5

Ich habe versucht, dies in Test.javaRegex nicht in Velocity Template arbeitet

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

String test1 = "<br/>"; 

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

Aber wenn ich versuche, das gleiche in einer Geschwindigkeit Vorlage `

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

Und:

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

Beide funktionieren nicht. Fehle ich etwas?

+0

Willkommen bei SO, RMVinodh. – Brian

+0

Danke Brian, SO ist ein großartiger Ort. – RMVinodh

Antwort

6

Die zusätzlichen Backslashes auslassen. Kein Grund, ihnen zu entkommen. Siehe Velocity Template - regular expressions

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

Danke für die Antwort. Wenn ich die zusätzlichen Backslashes entfernt habe, sehe ich das. Verursacht von: org.apache.velocity.exception.ParseErrorException: Lexikalischer Fehler: org.apache.velocity.runtime.parser.TokenMgrError: Lexikalischer Fehler in Zeile 1, Spalte 20. Entdeckt: "s" (115), nach: "\ „<\\“ – RMVinodh

+0

Es sieht für mich, dass der Fehler deutet darauf hin, dass es noch zwei Schrägstriche sind, bevor die 'S' – joescii

+0

Danke für die schnelle Antwort. das ist, was ich habe jetzt ' #set ($ brRegex =" <\ s * br \ s */* \ s *> ") #set ($ return =" < br > ") $ returnd.matches ($ brRexx) ' – RMVinodh