如何调试javax.validation.constraints.Pattern正则表达式?

时间:2018-02-18 04:15:48

标签: java regex validation

我正在使用javax.validation.constraints.Pattern注释来验证来自屏幕的数据是否符合我的要求?

我的代码如下:

import javax.validation.constraints.Pattern;

@Pattern(regexp = "[a-zA-Z0-9-]+")
private String regNo;

应将数据验证为以下样本数据。

正确的测试用例(以下是可接受的值):

  • 测试
  • Test123
  • 测试-123
  • 123试验
  • 132456
  • 15-564
  • 试验样品

但是使用的正则表达式不接受以下数据。

  • 132456
  • 15-564

我使用错误的正则表达式吗?

1 个答案:

答案 0 :(得分:0)

所以你只有两个案例:

  1. (字母或数字) - (字母或数字)
  2. (字母或数字)
  3. 这个正则表达式应该有效:

    import re
    def check_string(s):
       return any(re.findall('^-+$', i) for i in s)
    
    lists = [[['gta', '---', '---', 'gta'], True], [['gt-', 'ac-', 'ca-', 'gt-'], False]]
    for a, b in lists:
       assert check_string(a) == b