2013-09-25 14 views
5

Próbowałem to w Test.javaRegex nie działa w szablonie Velocity

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

String test1 = "<br/>"; 

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

Ale gdy próbuję to samo w szablonie prędkość `

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

oraz:

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

Obie nie działają. Czy czegoś brakuje?

+0

Witamy w SO, RMVinodh. – Brian

+0

Dzięki Brian, SO to wspaniałe miejsce. – RMVinodh

Odpowiedz

6

Pomiń dodatkowe ukośniki odwrotne. Nie ma potrzeby ucieczki od nich. Zobacz: Velocity Template - regular expressions

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

Dzięki za odpowiedź. Kiedy usunąłem dodatkowe ukośniki, widzę to. Spowodowane przez: org.apache.velocity.exception.ParseErrorException: Błąd leksykalny: org.apache.velocity.runtime.parser.TokenMgrError: Błąd leksykalny w wierszu 1, kolumna 20. Napotkane: "s" (115), po: "\ „<\\” – RMVinodh

+0

Wydaje mi się, że błąd sugeruje, że istnieją jeszcze dwa ukośniki przed 's' – joescii

+0

Dzięki za szybką odpowiedź. to jest to, co mam teraz ' #set ($ brRegex = " <\ s * br \ s */* \ s *> ") #set ($ returnd =" < br > ") $ returnd.matches ($ brRegex) ' – RMVinodh