代码改变世界

正则表达式应用系列一(准备)

2011-05-28 17:55  英雄小宝  阅读(264)  评论(0)    收藏  举报

  本系列主要是从基本语法到javascript应用,最后是在C#数据采集中的应用。

  阐述语法前,需要做一些准备性的工作:基于javascript正则。虽然JavaScrip和C#在正则语法有极小差别,但不影响下面的学习,后文会说明不一样的地方。辅助工具:RegexBuddy.3.4.0

  在JavaScript里一般两个地方用到正则,1.RegExp对象的方法,2.字符串方法。下面介绍一下RegExp对象如何定义,怎么应用的。定义方法有两种,并且他们是等效的。如下

var regStr=new RegExp("[a-z]","gi");//第一种方法
var regStr2=/[a-z]/gi;//第二种方法
var matchStr=“abCDe";
alert(regStr.test(matchStr)); //输出bool型的true;这里5个字母均匹配,test方法只要找到一个匹配的就return true
var result=regStr.exec(matchStr);//只返回一个匹配的结果,就是
"a"
var results=regStr.match(matchStr);//返回所有匹配的结果,并且存放在一个数组里。结果分别是:
"a","b","C","D","e"

  字符串方法包括:search,replace,spilt

var regStr=/[a-z]/gi;//全局g对search无效
var matchStr=“abCDe";

alert(matchStr.search(regStr));//输出第一个匹配位置的索引,由于是全局的,所以无法匹配,如果去掉g,则可以的,输出0
alert(matchStr.replace(regStr,'k'));//输出
"kkkkk",将所有匹配项替换为"k";如果不是全局,只替换第一个,即"kbCDe"

var regStr2=/c/i;
var arrs=matchStr.spilt(regStr2);//得到一个数组
"ab","De"

  代码可以放到JavaScript在线测试工具测试。

  下一篇开始讲述元字符、特殊字符、[]、^、[ - ]、组合类、预定义类。量词(贪婪、惰性、支配)、分组(捕获、非捕获)、候选、前瞻、边界、多行。