我的课堂上有一个带有验证的字段。我需要在名称中排除保留字:
data class SomeData (
@field:Size(min = 1, max = 128)
@field:Pattern(regexp = "(?!(id|name|description))[a-zA-Z_][a-zA-Z0-9_]*")
val name: String,
val description: String
)
当我尝试保存名称为'id'的实体时,出现错误。一切正常。但是,当我使用名称“ idp”时,我再次遇到错误。但这是一个普通的名字。一切都应该正常工作。如果保留字不是开头,则所有内容都可以正常工作(例如'pid','hidkk')。仅在使用完全保留字时才需要获取错误。如何解决?
已更新:已经问过here这样的问题,但是从那个问题的正则表达式中,我不明白它与我的处境有何关系,而且答案也不适合我的情况并且不起作用。 @WiktorStribiżew给出了正确的答案。