正则-一道正则练习及总结

要求:匹配每对中括号之间的${}里面的内容。

  例如[idkey=${param1}] and [CNNAME<>${param2}] or [column3>${param3}] ,需要匹配出param1、param2和param3。

答案:

总结:

1.转义字符:

  正则表达式中要匹配的字符本身,很多需要进行转义处理,也就是在原字符前加反斜杠'\'

  这些字符包含 ( ) [ ] { } * . ? + $ ^ | \ /

2. 表达式中.*?中 . 的含义

  其中 . 表示匹配除换行符/n任意字符字符之外的任意字符。

3.贪婪模式与懒惰模式

  贪婪模式,尽可能多地匹配字符。懒惰模式反之。

  最明显的表现是,如果使用贪婪模式,只能匹配出来一组数据,从头到尾,很长。而使用懒惰模式则可以达到预想的效果。

  匹配数量限制后面加一个问号?为懒惰模式。

  

4.exec,match和test

   regExp.test(string):返回true或者false。

   regExp.exec(string):返回内容比较齐全,支持子表达式的匹配。

            

   string.match(regExp):返回值数组中除了匹配到的字符串没有任何其他信息。

5. regExp的lastIndex属性

  lastIndex 属性用于规定下次匹配的起始位置。

  该属性是可读可写的。

  在全局匹配过程中,没匹配到一条自动加一,当方法 exec() 或 test() 再也找不到可以匹配的文本时,它们会自动把 lastIndex 属性重置为 0。

6. 正则中的^

  情况1:表示以XX开头,如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n' 或 ‘\r' 之后的位置。

  情况2:出现在[]中表示取反,非XX的意思

    

 

posted on 2017-06-14 17:07  王雪皓  阅读(191)  评论(0)    收藏  举报