贪婪到占有 java RegEx

问题描述 投票:0回答:0

我有一个

SpringBoot 2.6.14
网络应用程序,为了验证电子邮件,我创建了一个注释,如下所示:

@Email(message="Please provide a valid email address")
@Pattern(regexp=".+@.+\\..+", message="Please provide a valid email address")
@Target( { ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {})
@Documented
public @interface EmailValidator {
  String message() default "Please provide a valid email address";
  Class<?>[] groups() default {};
  Class<? extends Payload>[] payload() default {};
}

很明显,这个

@EmailValidator
适用于
String
。现在它完美运行,例如以下电子邮件:

[email protected] -> PASS
foo#foo.it -> FAIL
[email protected]. -> FAIL
[email protected] -> PASS
[email protected] -> PASS
[email protected] -> FAIL

这对我来说已经足够了(即使我复制正则表达式并把它放在这里,我也无法重现预期的结果,这让我很生气)

无论如何

SonarQube
,在我的夜间构建中,将该正则表达式报告为热点安全问题。现在通常我把正则表达式 here 并尝试使其所有格。这次我没能做到,因为如果我把那个正则表达式放在测试仪上,匹配与休眠验证用我的注释执行的匹配是不同的。

有人可以帮助我使正则表达式具有所有格(或者至少不是 SonarQube 的问题)吗?

java regex sonarqube
© www.soinside.com 2019 - 2024. All rights reserved.