正则表达式为url模式

时间:2013-11-28 22:38:21

标签: java regex

我正在开发一个接受这个网址的动态控制器:

  1. mock_test5 - mock_test1
  2. reviewer_test5
  3. reviewer_test4
  4. reviewer_test3.1
  5. reviewer_test3.2
  6. reviewer_test1
  7. 注意:不包括reviewer_test2

    我很难搞清楚。到目前为止我还没有这样做:

    ^(mock|reviewer)_test[1-5]$

    我也不知道如何解释3.13.2

2 个答案:

答案 0 :(得分:5)

^(?:mock_test[1-5]|reviewer_test(?:[145]|3[.][12]))$

Regular expression visualization

^(?:mock_test(?:1|2|3|4|5)|reviewer_test(?:(?:1|4|5)|3\.(?:1|2)))$

Regular expression visualization

答案 1 :(得分:0)

正如您在此链接中所看到的:http://regexr.com?37dtn

^(mock_test[1-5])|reviewer_test([145]|3\.1|3\.2)$

^                  = start a line with
(mock_test[1-5])   = the string 'mock_test' followed by a number from 1 to 5 
                     I think the '(' and ')' are not necessary
|                  = OR
reviewer_test      = the string 'reviewer_test'
([145]|3\.1|3\.2)  = the numbers 1,4,5 OR the number 3.1 OR the number 3.2
$                  = end of line

更新

如果数量有限,我不会使用正则表达式,因为它似乎是某种write once read never again代码。