国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > web前端 > htmlcss > 正则表达式

正则表达式

来源:程序员人生   发布时间:2015-01-19 08:35:26 阅读次数:2304次


1.甚么是正则表达式
  ①文件路径通配符
    "?"匹配单个字符,"*"匹配零个或多个字符。
  ②正则表达式
    符合某种规则的表达式
  ③元字符与子匹配
    元字符
    子匹配
      括号所括起来的表达式部份为1个子匹配(子表达式)

2.RegExp对象
  ①创建
    1)显示构造器:var regExp = new RegExp("pattern"[,"flags"]);
    2)隐式构造器:/pattern/[flags]

    flags标志字符:
      g:用作全局标志()
      i:用作疏忽大小写
      m:用作多行标志
      
    注意事项:
      当使用显示构造器的时候,应将原始的正则表达式模式中的每一个""都使用""来替换
      var re = new RegExp("d{5}");
      var re = /d{5}/;
  ②RegExp对象的属性:
      1)静态属性:
        index:匹配开始的位置,默许⑴
 input:返回当前所作用的字符串
 lastIndex:匹配字符的下1个位置,默许⑴
        lastMatch:最后1个匹配的字符串
 lastParen:子匹配的最后1个,匹配到的字符串
 leftContext:最后匹配的字符串的左侧的内容
 rightContext:最后匹配的字符串的右侧的内容
        $1...$9 子匹配匹配的内容

      2)实例属性:
        global:全局标志
 ignoreCase:疏忽大小写
 multiline:多行标志,
        source:返回模式文本
    ③方法
       test(str):检查1个字符串是不是满足正则表达式,返回TRUE或false,并更新静态属性
       exec(str):检查1个字符串是不是满足正则表达式,返回搜索数组或null,并更新静态属性
         返回数组还有3个属性index,input,lastIndex
       compile("pattern"[,"flags"]):更换RegExp对象实例所使用的正则表达式

       说明:如果为正则表达式设置了全局标志(g),可以屡次调用exec和test方法在字符串中履行连续搜索,
       每次都是从RegExp对象的lastIndex属性指定的位置开始搜索字符串。如果没有设置全局标志(g),则exec和
       test方法疏忽RegExp对象的lastIndex属性值,从字符串的起始位置开始搜索。

    ④String对象与正则表达式有关的方法
       match(RegExp):与exec方法类似,返回1个包括搜索结果的数组。
       search(RegExp):返回第1个匹配的字符串的位置
       replace(RegExp,replaceText):替换满足匹配的字符串并返回替换后的字符串
       split([separator[,limit]]):返回拆分数组。
    ⑤正则表达式语法
       元字符:
         1).限定符:用于指定其前面的字符或组合项连续出现多少次
    n+ 匹配任何包括最少1个 n 的字符串。
           n* 匹配任何包括零个或多个 n 的字符串。
    n? 匹配任何包括零个或1个 n 的字符串。
    n{X} 匹配包括 X 个 n 的序列的字符串。
    n{X,Y} 匹配包括 X 或 Y 个 n 的序列的字符串。
    n{X,} 匹配包括最少 X 个 n 的序列的字符串。
    n$ 匹配任何结尾为 n 的字符串。
    ^n 匹配任何开头为 n 的字符串。
    ?=n 匹配任何其后紧接指定字符串 n 的字符串。
    ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
         2).选择匹配符(|)
  3).分组组合符:将正则表达式中的某1部份内容组合起来的符号。
  4).反向援用符:用于匹配前面的分组组合所捕获的内容的标识符号。
     (pattern):子匹配,缓冲,用反向援用符调用
     um:num表示分组组合的序号
     (?:pattern):子匹配,但是不会存储在缓冲区中,不能用反向援用符调用
         5).特殊字符
     .  查找单个字符,除换行和行结束符。
     w 查找单词字符。
     W 查找非单词字符。
     d 查找数字。
     D 查找非数字字符。
     s 查找空白字符。
     S 查找非空白字符。
      查找位于单词的开头或结尾的匹配。
     B 查找不处在单词的开头或结尾的匹配。
     查找 NUL 字符。
     查找换行符。
     f 查找换页符。
     查找回车符。
     查找制表符。
     v 查找垂直制表符。
     xxx 查找以8进制数 xxx 规定的字符。
     xdd 查找以106进制数 dd 规定的字符。
     uxxxx 查找以106进制数 xxxx 规定的 Unicode 字符。
         6).字符匹配符
     [abc] 查找方括号之间的任何字符。
     [^abc] 查找任何不在方括号之间的字符。
     [0⑼] 查找任何从 0 至 9 的数字。
     [a-z] 查找任何从小写 a 到小写 z 的字符。
     [A-Z] 查找任何从大写 A 到大写 Z 的字符。
     [A-z] 查找任何从大写 A 到小写 z 的字符。
     [adgk] 查找给定集合内的任何字符。
     [^adgk] 查找给定集合外的任何字符。
     (red|blue|green) 查找任何指定的选项。



生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生