首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Expresion Regular en Postgresql

Expresion Regular en Postgresql
EN

Stack Overflow用户
提问于 2020-05-15 02:48:13
回答 2查看 73关注 0票数 0

我需要帮助你写这个表达式定期到Postgresql。

这在C#中工作得很好,但我需要在Postgresql中使用它:

代码语言:javascript
复制
^[\S]*(?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[\W_])[\S]{8,15}$

我需要验证一个词,有一个或多个数字,一个或多个字母和一个或多个特殊字符。8到15之间的大小

EN

回答 2

Stack Overflow用户

发布于 2020-05-15 12:58:36

有相当多的方法可以使用regex进行匹配。您可以找到Postgres文档here。在我看来,您可以使用POSIX正则表达式操作符~

还有其他变体,如~*,它不区分大小写,前面有两个相同的not操作符,!~!~*

例如:

代码语言:javascript
复制
SELECT *
  FROM strings s
 WHERE s.string ~ '^[\S]*(?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[\W_])[\S]{8,15}$'
;

在相同的文档中还可以找到模式匹配字符串函数,例如,REGEXP_MATCHESREGEXP_REPLACE

Ex_2:

代码语言:javascript
复制
SELECT REGEXP_MATCHES(s.string, '^[\S]*(?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[\W_])[\S]{8,15}$')[0] -- note the index
  FROM strings s
;
票数 0
EN

Stack Overflow用户

发布于 2020-05-19 03:52:56

非常感谢,但我不能在你的帮助下工作,在这种情况下使用'D@niel123+)时我得不到正确的答案:

1) SELECT REGEXP_MATCHES('D@niel123+','^\S(?=.A-Z)(?=.\d)(?=.*\W_)\S{8,15}$')

2)选择'D@niel123+‘~ E'^(?=[^:lower:][:lower:])(?=[^:upper:][:upper:])(?=\D*\d)(?=[:alnum:]*[^:alnum:])\S{8,15}$';

3)选择'D@niel123+‘~ E'^\S(.A-Z)(.\d)(.*\W_)\S{2,15}$';

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61805142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档