当前位置: 首页 > 面试题库 >

注释和正则表达式

凌嘉勋
2023-03-14
问题内容

我需要使用批注+正则表达式对电子邮件进行验证。我尝试使用以下内容:

@NotNull
@Pattern(regexp=".+@.+\\.[a-z]+")
private String email;

但是,当电子邮件字段中的电子邮件地址不正确时,我不知道如何打印错误消息。有任何想法吗?


问题答案:

首先,您应该messagePattern注释中添加一个属性。假设您的邮件变量是某个类User的一部分:

class User{
@NotNull
@Pattern(regexp=".+@.+\\.[a-z]+", message="Invalid email address!")
private String email;
}

然后,您应该定义一个验证器:

ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
Validator validator = vf.getValidator();
User user = new User();
user.setEmail("user@gmail.com");
Set<ConstraintViolation<User>> constraintViolations = validator
        .validate(user);

然后找到验证错误。

for (ConstraintViolation<Object> cv : constraintViolations) {
      System.out.println(String.format(
          "Error here! property: [%s], value: [%s], message: [%s]",
          cv.getPropertyPath(), cv.getInvalidValue(), cv.getMessage()));
}


 类似资料:
  • 问题内容: 我想解析一个文件,并且想使用php和regex剥离: 空白或空行 单行注释 多行注释 基本上我想删除任何包含 或多行注释 如果可能的话,另一个正则表达式检查行是否为空(删除空行) 那可能吗?有人可以向我发布一个正则表达式吗? 非常感谢。 问题答案:

  • 问题内容: 我有一些复杂的正则表达式,为了便于阅读和维护,需要对其进行注释。Java规范相当简洁,为了使它正常工作,我努力了很长时间。我终于抓住了我的错误,并将其发布为答案,但对于保持正则表达式的任何其他建议,我将不胜感激 作为示例,我想在一个简单的名称解析器中注释(patternS的)子组件: 编辑:我也将感谢(?x)格式的示例。 编辑:@ geowa4有一个很好的建议,可以避免嵌入注释。自从J

  • 问题内容: 问题: 有人可以给我一个有效的正则表达式(C#/ VB.NET),可以从SQL语句中删除单行注释吗? 我的意思是这些评论: 不是那些 因为我已经可以处理星级评论。 我做了一个小解析器,当它们在行的开头时删除了这些注释,但是它们也可以在代码之后或更糟的地方,在SQL字符串中。 那些注释也应该被删除(SQL字符串中的那些注释除外)。当然-如果可能的话)。 令人惊讶的是我没有使正则表达式工作

  • 问题内容: 我的问题是:在GWT中使用正则表达式是否有很好的解决方案? 例如,我对String.split(regex)的使用不满意。GWT将代码转换为JS,然后将正则表达式用作JS正则表达式。但是我不能使用Java Matcher或Java Pattern之类的东西。但是我需要这些来进行组匹配。 有没有可能或图书馆? 我尝试了Jakarta Regexp,但是还有其他问题,因为GWT不能模拟该库

  • 问题内容: 我有一个脚本,可以分析电视剧集的文件名(例如show.name.s01e02.avi),获取剧集的名称(从www.thetvdb.com API),然后自动将其重命名为更好的名称(显示名-[01x02 ] .avi) 该脚本可以正常工作,直到您尝试在具有Unicode显示名称的文件上使用该脚本为止(我从未真正考虑过这一点,因为我拥有的所有文件都是英文的,所以大部分都属于) 如何允许正则