@Pattern 与 Unicode 脚本 \\p{L}* 不工作

@Pattern with Unicode script \\p{L}* doesn't work

我有问题 javax.validation.constraints.Pattern @模式验证。

@Pattern(regexp = "\p{L}*", message = "Msg")
private String name;

当我尝试输入任何文本时,它不起作用。

当我使用:

@Pattern(regexp = "[a-zA-Z]*", message = "Msg")

它适用于非拉丁字符。

您需要使用 Pattern.UNICODE_CHARACTER_CLASS flag 使 \p{L} 模式识别 Unicode。

Enables the Unicode version of Predefined character classes and POSIX character classes.

由于您使用的是字符串模式,因此您可以使用内联(嵌入式)标志变体,(?U):

regexp = "(?U)\p{L}*"