php专区

 首页 > php专区 > 正则表达式 > 浅谈正则表达式 实例入门_正则表达式

浅谈正则表达式 实例入门_正则表达式

分享到:
【字体:
导读:
          这些都是 javascript 正则表达式的基本方法,如果你看会了看复杂的正则你会有豁然开朗的感觉。...

很长时间没看 正则表达式了,碰巧今天用到,温故知新了一把 看书学习吧
50% 的举一反三练习中的原创。
一 javascript正则表达式的基本知识
1 javascript 正则对象创建 和用法
声明javascript 正则表达式
复制代码 代码如下:

var reCat = new RegExp("cat");
你也可以
var reCat = /cat/; //Perl 风格 (推荐)

2 学习最常用的 test exec match search replace split 6个方法
1) test 检查指定的字符串是否存在
复制代码 代码如下:

var data = "123123";
var reCat = /123/gi;
alert(reCat.test(data)); //true
//检查字符是否存在 g 继续往下走 i 不区分大小写

2) exec 返回查询值
复制代码 代码如下:

var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/i;
alert(reCat.exec(data)); //Cat

3)match 得到查询数组
复制代码 代码如下:

var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
var arrMactches = data.match(reCat)
for (var i=0;i < arrMactches.length ; i++)
{
alert(arrMactches[i]); //Cat cat
}

4) search 返回搜索位置 类似于indexof
复制代码 代码如下:

var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.search(reCat)); //23

5) replace 替换字符 利用正则替换
复制代码 代码如下:

var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.replace(reCat,"libinqq"));

6)split 利用正则分割数组
复制代码 代码如下:

var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /,/;
var arrdata = data.split(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}

3 学习下 简单类 负向类 范围类 组合类
复制代码 代码如下:

//简单类
var data = "1libinqq,2libinqq,3libinqq,4libinqq";
var reCat = /[123]libinqq/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); // 1libinqq 2libinqq 3libinqq
}
//负向类
var data = "alibinqq,1libinqq,2libinqq,3libinqq,4libinqq"; //u0062cf
var reCat = /[^a123]libinqq/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); //4libinqq
}
//范围类
var data = "libinqq1,libinqq2,libinqq3,libinqq4,libinqq5"; //u0062cf
var reCat = /libinqq[2-3]/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); // libinqq2 libinqq3
}
//组合类
var data = "a,b,c,w,1,2,3,5"; //u0062cf
var reCat = /[a-q1-4n]/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); // a b c 1 2 3
}

这些都是 js正则 最基本的使用方法,看不会的请复制到笔记本练习下,看会了再往下面看。
二 javascript 正则表达式是分组知识
1) 简单分组
复制代码 代码如下:



2 复杂分组
复制代码 代码如下:



3 反向引用
复制代码 代码如下:



4 候选
复制代码 代码如下:



5 非捕获性分组
复制代码 代码如下:



6 前瞻
复制代码 代码如下:



7 边界
复制代码 代码如下:



8 多行模式
Code
复制代码 代码如下:



至此结束,这些都是 javascript 正则表达式的基本方法,如果你看会了看复杂的正则你会有豁然开朗的感觉。
分享到:
关于IE的RegExp.exec的问题_正则表达式
代码如下: 复制代码 代码如下: var st="A[B]C[D]E[F]G"; var reg =/\[\w\]/ig; var s1 = st.replace(reg,""); var s2=[]; var arr; while((arr=reg.exec(st))!=null)s2.push(arr[0]); alert(s1); alert(s2.join("")); FF下正确显示,IE下S2为空. 网上查不到资料,请各位指点一二. 查询过程中得了个意外收获 复制代码 代...
javascript RegExp multiline多行匹配影...
内容全写注释里了- - 复制代码 代码如下: /^$/.test(&#039;\n&#039;); //false,为什么呢,说明如下 var p = /^/mg; var s = &#039;1\n\n\n2\n\n3&#039;; p.test(s); //跳过开始位置JS里好象没那个词- - p.test(s); alert(RegExp.rightContext.replace(/\x0A/g, &#039;\\a&#039;)); //由此得出^匹配的是\n后面的位置或开...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……