【问题标题】:pl/sql regex verificationpl/sql 正则表达式验证
【发布时间】:2011-07-19 18:59:44
【问题描述】:

如何验证仅允许数字字母和“.”、“/”、“_”、“-”等字符且仅允许 40 个字符的字符串。

我正在做类似REGEXP_LIKE(path, '[a-zA-Z0-9_./-]{2,40}$') 的操作,但效果不佳。

谁能帮我解决这个正则表达式?

【问题讨论】:

    标签: sql regex plsql


    【解决方案1】:

    嗯,它不会限制为 40 个字符,因为它没有锚定到字符串的开头。试试:

    REGEXP_LIKE(path, '^[a-zA-Z0-9_./-]{2,40}$')
    

    除此之外,我看不出有什么明显的错误,当然假设您的意思是最小长度为 2 个字符。

    【讨论】:

    • 如果没有 ^ 锚,它不会限制为 40,因为这样它就会匹配字符串末尾的 40 个字符。在此之前可能会有 5K 的乱码,而正则表达式仍然会找到匹配项。
    【解决方案2】:

    可能需要添加行首特殊字符^,即:^[a-zA-Z0-9_./-]{2,40}$

    【讨论】:

      猜你喜欢
      • 2020-06-02
      • 2014-07-27
      • 2019-06-10
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      相关资源
      最近更新 更多