zoukankan      html  css  js  c++  java
  • 正则表达式小试

    最近遇到一个需要,要求验证的条件要满足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:匹配任何非空白字符

  • 相关阅读:
    MySQL详细安装(windows)
    深入理解java虚拟机
    java语言实现机制
    java基本类型的长度
    关于SQLite数据库 字段 DateTime 类型
    "初识".Net Winfom
    Linux Shell脚本编程while语句
    mysql主从搭建
    oracle dg状态检查及相关命令
    Oracle 11.2.0.4单实例打补丁
  • 原文地址:https://www.cnblogs.com/zkyefei/p/9151300.html
Copyright © 2011-2022 走看看