• 正则表达式小试


    最近遇到一个需要,要求验证的条件要满足varchar2(即数字、字母、其他符号)要求位数<100。

    首先输入数字 /【0-9】/意思就是可以输入0-9之间一个字符,匹配单个字符,因为是varchar2类型的数据,而且字符小于100,因此我们能只满足一个字符。

    将/【0-9】/改为/【0-9】+/匹配一个或者多个字符。

    接下来匹配字母,字母由小写a-z与大写A-Z构成,可以根据上面的式子推断出匹配多个数字和字母的正则表达式为:/]a-zA-Z0-9]+/。

    接着匹配其他符号,其他符号也可以理解为非空格的符号,还有引号,可以使用\W,\表示转义,接下来就可以写为:/[a-zA-Z0-9\W]+/这样就可以匹配所有的数字,字母和大部分的符号了。

    接下来就是限制输入的字符个数,可以写成/[a-zA-Z0-9\W]+{0,100}/要是这么写就错了,+号代表的是任意字符,然而{0,100}表示在0-100之间,一个任意一个限制了区间,发生冲突,此正则表达式不成立,应该写为:/[a-zA-Z0-9\W]{0,100}/。

    下面总结一下正则表达式的语法:

    \:将下一个标记为特殊字符,转义,比如\n就是换行

    ^:字符串开始的位置,^1 表示以1开头的字符串,也有非逻辑意义

    $:匹配字符串结尾位置

    *:零次或多次匹配前面的字符或子表达式,表示多个占位符,最少零个

    +:一次或者是多次,表示多个占位符,最少一个

    ?:零次或者是一次,表示一个占位符

    |:或逻辑,如x|y表示匹配x或者y

    [xyz]:字符集包含其中任意的字符

    [^xyz]:反向字符集,不包含其中

    [a-z]:范围字符集,a到z之间的所有字母

    [^a-z]:反向字符集,同上相反

    \d:数字字符匹配,等价于[0-9]

    \D:于\d相反

    \S:匹配任何非空白字符

  • 相关阅读:
    npm ERR! code ELIFECYCLE
    typescript react echarts map geojson
    react ts could not find a declaration file for module
    SQL SERVER 查询存储过程执行时间
    分析云优化方案
    U8 单据弃审失败 解决办法
    RCP的熔断,降级与限流(笔记五)
    RPC的优雅关闭(笔记四)
    RCP的请求路由(笔记三)
    RCP的负载均衡(笔记二)
  • 原文地址:https://www.cnblogs.com/zkyefei/p/9151300.html
Copyright © 2020-2023  润新知