1
0
-1

I'm trying to accomplish a regex test in velocity. However, I can't get to work. What am I doing wrong?

My code:

#set( $str = "$issue.reporter")

#if($str.matches('/bdo.com/b'))

true

#else

false

#end

Now reporter is john@do.com, but still this test always returns false. The regex is tested in an online regex tester! What would the proper way to do regex testing on strings in a Velocity template?

    CommentAdd your comment...

    2 answers

    1.  
      2
      1
      0

      1. You need to have \\b instead of /b (two backslashes instead of one for escaping).

      2. "matches()" tests the whole string, so you need to match against ".*\\bdo.com\\b.*"

      1. jan.post

        Thnx, got it working with ".*do.com".

      CommentAdd your comment...
    2.  
      2
      1
      0

      Hi Jan,

      Velocity inherits regex syntax from Java language.

      You can have a look at the overview in the documentation here: http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#sum

      I think your code should check something like #if($str.matches("do.com"))

      1. jan.post

        combining both answers did the trick. thnx

      CommentAdd your comment...