Postgres regex用于限制禁止字符和限制consequentive caps的数量
我想向两个表(在多个列上)添加几个相同的约束 为此,我想创建用于检查约束的函数 如果值包含以下任何一项(字符串将始终至少包含一些字母),则验证应失败:Postgres regex用于限制禁止字符和限制consequentive caps的数量,regex,postgresql,Regex,Postgresql,我想向两个表(在多个列上)添加几个相同的约束 为此,我想创建用于检查约束的函数 如果值包含以下任何一项(字符串将始终至少包含一些字母),则验证应失败: 。(两个后续点) 我相信您可以使用 (^.[^.])[.]{2}([^.].$)[124.[].[]上]][:upper:]{4}.[:upper:]+$ 它匹配(因此,由于您使用的是否定正则表达式匹配运算符,因此拒绝)以下模式: (^.[^.])[.]{2}([^.].$)-两个点,前面是字符串开头或非点字符,后面是非点字符或字符串结尾
(两个后续点)。
我相信您可以使用
它匹配(因此,由于您使用的是否定正则表达式匹配运算符,因此拒绝)以下模式:(^.[^.])[.]{2}([^.].$)[124.[].[]上]][:upper:]{4}.[:upper:]+$
-两个点,前面是字符串开头或非点字符,后面是非点字符或字符串结尾(因此,仅(^.[^.])[.]{2}([^.].$)
字符串,无。
)…
-a[]
-四个连续的大写字母[[:大写:]{4}
-完全由大写字母组成的字符串^[:upper:]+$
请参阅。尝试
'[.]{2}|[.[:upper:]{4}| ^[:upper:]+$”
@WiktorStribiżew我忘了提到它必须允许3个点。
,抱歉!(然后,我将使用一个函数将…
转换为省略号,然后尝试(^ |[^.])[{2}([^.]|$)|[:[:upper:][]{4}^[:upper:][]+$
,现在它不能对非所有大写字母进行验证(它至少应该包含一个小写字母),但您已经提供了很大的帮助,非常感谢!如果条件允许的话“不全是大写字母,至少有一个小写字母”,那么就这样写吧。^[[:upper:][]+$
匹配一个只由大写字母组成的字符串。再次感谢您的帮助!我发布了另一个问题,据称要求有点复杂:。如果您能看一下,我将不胜感激。