欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

正则表达式练习题

程序员文章站 2023-02-20 19:10:21
正则表达式在线测试:http://tool.chinaz.com/regex/ 1、匹配整数或者小数(包括正数和负数) -?\d+(\.\d+)? -?表示-匹配0次或一次,\d表示整数,+表示匹配一次或多次,(\.\d+)?表示小数2、匹配年月日日期 格式2018-12-6 ^[1-9]\d{0, ......

正则表达式在线测试:http://tool.chinaz.com/regex/

1、匹配整数或者小数(包括正数和负数)

  -?\d+(\.\d+)?

    -?表示-匹配0次或一次,\d表示整数,+表示匹配一次或多次,(\.\d+)?表示小数
2、匹配年月日日期 格式2018-12-6

  ^[1-9]\d{0,3}-(1[0-2]|0?[1-9])-(3[01]|[12]\d|0?[1-9])$

    1.^[1-9]表示年是以数字1-9开头的,\d{0,3}表示年的位数,^[1-9]\d{0,3}就表示1-9999年之间

    2.(1[0-2]|0?[1-9])中|前面的1[0-2]表示从10到12,后面的0?[1-9]表示01-09或者1-9,

      (1[0-2]|0?[1-9])表示月,01-12或者1-12

    3.(3[01]|[12]\d|0?[1-9])$其中3[01]表示30或31,[12]\d表示从10-29,最后的0?[1-9]表示从

      01-09或者是从1-9.整体就表示从01-31或者1-31

3、匹配qq号

  [1-9]\d{4,11}

    表示5位到12位qq.第一位为非0

4、11位的电话号码

  1[3-9]\d{9}

    第一位数字为1,第二位为3-9,后面随便9位数
5、长度为8-10位的用户密码 : 包含数字字母下划线

  \w{8,10}

    ........最简单的,不写解释了
6、匹配验证码:4位数字字母组成的

  [\da-za-z]{4}或者[0-9a-za-z]{4}

    [ ]里面的表示数字,或者a-z或者a-z,{4}表示4位
7、匹配邮箱地址

  [0-9a-za-z][\w\-.]+@[a-za-z0-9\-]+(\.[a-za-z0-9\-]+)*\.[a-za-z0-9]{2,6}

    [0-9a-za-z][\w\-.]+  @前面必须有内容且只能是字母(大小写),数字,下划线,减号,点

    [a-za-z0-9\-]+(\.[a-za-z0-9\-]+)*  @和最后一个点之间必须有内容且只能是字母(大小写),数字,点,减号,且两个点不能挨着

    [a-za-z0-9]{2,6}  最后一个点之后必须有内容且内容只能是字母(大小写),数字长度为大于等于2,小于等于6
8、从类似
<a>wahaha</a>
<b>banana</b>
<h1>qqxing</h1>
这样的字符串中,
1)匹配出wahaha,banana,qqxing内容。

  \w{6}

  >\w+<
2)匹配出a,b,h1这样的内容

  <\w+>

9、1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))
1)从上面算式中匹配出最内层小括号以及小括号内的表达式

  \([^()]+\)  \(和\)表示前后位( ),[^()]就表示外面的()里面没有()

10、从类似9-2*5/3+7/3*99/4*2998+10*568/14的表达式中匹配出从左到右第一个乘法或除法

  \d+[*/]\d+  [*/]前后的\d+表示*或/前面的整数,可能是多位数字,要加+