@使用Unicode脚本的模式\\ p {L} *不起作用
问题描述:
我有问题 javax.validation.constraints.Pattern @Pattern验证。@使用Unicode脚本的模式\ p {L} *不起作用
@Pattern(regexp = "\\p{L}*", message = "Msg")
private String name;
当我试图输入任何文本不起作用。
当我用:
@Pattern(regexp = "[a-zA-Z]*", message = "Msg")
它的伟大工程与非拉丁字符。
答
您需要将\p{L}
模式的Unicode识别为Pattern.UNICODE_CHARACTER_CLASS
flag。
启用Unicode版本的预定义字符类和POSIX字符类。
由于您使用的字符串模式,你可以使用内联(嵌入式)标志的变体,(?U)
:
regexp = "(?U)\\p{L}*"
你可以定义“不工作”? – assylias
你输入什么文字?请注意,此处的模式是锚定的,您只能键入字母。为了允许,例如空格也使用'[\\ p {L} \\ s] *'。 –
我输入froms文本和验证器返回验证错误。 –