美文网首页
正则表达式

正则表达式

作者: Lawliet_cxy | 来源:发表于2019-04-09 14:32 被阅读0次

    正则表达式用于匹配字符串,通常用来判断用户输入数据是否合法。

    正则基础:

    • \d匹配一个数字:
      `66\d`能成功匹配`666`,但无法匹配`66A`,A是字母
      `\d\d\d`可以成功匹配`666`

    • \w匹配一个字母或数字:
      `\w\w\w`可以匹配`aaa`

    • \s匹配一个空格,包括Tab等空白符

    • .可以匹配任意字符:
      `aa.`可以匹配`aaa``aa1``aa!`等等

    • 匹配变长的字符时,使用*表示任意个字符(包括0个),+表示至少一个字符,?表示0个或者1个字符,{n}表示n个字符,用{n, m}表示n-m个字符

    例子:\d{3}\s+\d{3,8}
    分析:
    1.\d{3}表示匹配3个数字,
    2.\s表示匹配一个空格,+表示至少一个,所以就是至少一个空格
    3.\d{3-8}表示3-8个数字
    如果要将\s换成-呢?由于-是特殊字符,所以需要\转义,将正则表达式改为\d{3}\-\d{3,8}即可

    更为复杂的正则:

    当需要使用更精准、复杂的正则的时候,就要用到[],它表示范围,比如:
    [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线
    [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如`a100``0_Z``js666`等等
    [a-zA-Z\_\$][0-9a-zA-Z\_\$]*匹配一个由字母或下划线、$开头,后接任意个由数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名
    [a-zA-Z\_\$][0-9a-zA-Z\_\$]{0-19}限制了变量长度是1-20,(因为[]的范围作用,前面已有一个字符所以范围是0+119+1

    • A|B匹配A或者B
      具体用法:
      (J|j)ava(S|s)cript可匹配`JavaScript``Javascript``javaScript`或者`javascript`

    • ^表示行的开头,如:^\d表示必须以数字开头

    • $表示行的结束,如:\d$表示必须以数字结束(注意$是在后面)

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/mfybiqtx.html