【问题标题】:I need a regular expression for password in pl-sql using regexp_like我需要使用 regexp_like 在 pl-sql 中使用正则表达式作为密码
【发布时间】:2014-09-09 03:54:21
【问题描述】:

正则表达式必须强制执行这些规则

  1. 第一个符号只能是大写或小写字母
  2. 密码长度必须至少为 8 个字符
  3. 密码必须至少包含一个数字,大写和小写字母
  4. 密码不能包含空格和特殊字符

【问题讨论】:

  • 大写符号是什么意思?
  • 请向我们展示您的尝试;这不是weworkforfree.com
  • 为什么需要一个正则表达式?为什么不把几个表达式组合起来呢?在第 1 点定义“符号”——你是说你只想要一个字母字符 A-Z?在第 4 点定义“特殊字符”——您是说要将密码限制为字母数字字符(A-Z 和 0-9)吗?
  • 对不起,我的意思是一封信。我会解决的
  • 例如密码必须是这样的:fooBar123

标签: regex plsql oracle11g


【解决方案1】:

Oracle 不支持环视。因此,如果您想使用REGEXP_LIKE,我们需要将其拆分为两个正则表达式:

SELECT * FROM mytable 
WHERE REGEXP_LIKE(mycolumn, '^.*[0-9]', 'c')
AND REGEXP_LIKE(mycolumn, '^[a-zA-Z][a-zA-Z0-9]{7,}$', 'c');

说明

  • ^.*[0-9] 确保至少有一位数字
  • ^ 锚断言我们位于字符串的开头
  • [a-zA-Z] 匹配首字母
  • [a-zA-Z0-9]{7,} 匹配 7 个或更多字符(确保总共 8 个或更多)是 ASCII 字母或数字
  • $ 锚断言我们在字符串的末尾

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2014-03-23
    • 2011-07-24
    • 1970-01-01
    相关资源
    最近更新 更多