gpt4 book ai didi

java - javax.validation.constraints 中的转义序列无效

转载 作者:行者123 更新时间:2023-12-02 07:45:50 25 4
gpt4 key购买 nike

我正在尝试使用 Hibernate bean Validation 将 regExp 添加到我的 Bean。这是我的代码

@NotNull(message = "{register.pwd.invalid}")
@Size(min = 6, max = 8, message = "{register.pwd.invalid}")
@Pattern(regexp="^(?=.*\d)(?=.*[A-Z]).{6,8}$",message="{register.pwd.week}")
public String getPwd()
{
return pwd;
}

但是使用这个我收到以下错误

Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

似乎我无法逃脱这些序列。有没有什么方法或java方法来处理这个问题,或者我需要在regExp中做一些事情来处理这一切

最佳答案

您需要转义字符串文字中的反斜杠:

regexp="^(?=.*\\d)(?=.*[A-Z]).{6,8}$"

实际的字符串值此时只有一个反斜杠,因此正则表达式解析器会将其视为“\d”。

请注意,这实际上与 Hibernate 等没有任何关系。您可以使用纯字符串看到相同的事情:

// This will give the same problem
String x = "^(?=.*\d)(?=.*[A-Z]).{6,8}$";

// Demo of fix
String working = "^(?=.*\\d)(?=.*[A-Z]).{6,8}$";
System.out.println(working);

关于java - javax.validation.constraints 中的转义序列无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10877997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com