码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2016-05-04 20:45:36      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

 

1什么是正则表达式,创建正则的两种方法

正则表达式是一个描述字符模式的一个对象,正则表达式用RegExp对象表示。

正则表单式创建方式有两种:1、直接量   2、使用RegExp来创建正则对象。  用

var person=/\w/g;
var person1=new RegExp("\\w")


一般如果正则表达式是变量的,通常使用第二种方式,第一个参数是正则表达式,第二个是模式匹配符包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。

var str=‘mm‘+1;
var reg=new RegExp(str,‘g‘);
reg.test(‘mm1‘);

2.正则表达式的元字符和量词

元字符 描述
. 除了换行符和其他unicode之外的所有字符
\w 等价于[a-zA-Z0-9]
\W 等价于[^a-zA-z0-9]
[....] 在方括号内的任意字符
[^...] 不在方括号内的任意字符
\s 任何空白字符
\S 任何非unicode字符外的字符
\d 等价于[0-9]
\D 等价于[^0-9]
匹配前面的0次或者1次,等价于{0,1}
+ 匹配前面的一次或者多次,等价于{1,}
* 匹配前面的多次或者0次,等价于{0,}
{n,m} 匹配前面的n次到m次
{n} 匹配n次
{n,} 匹配前面的n次或者更多次
^ 匹配字符串的开头
$ 匹配字符串的结尾
\b 匹配字符串的边界
\B 匹配非边界
 ?  在量词后面加一个?表示非贪婪匹配,尽可能少的匹配

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在正则中还有许多标点符号有特殊的意义,他们是:
^ $  .  * + ? = ! : | \ / ()  []  {}
如果想在正则表达式中使用他们的直接量,那么要用\斜杠进行转义,例如 var reg=/\\/g   这个匹配的是一个‘\‘;
2.2  选择和分组引用和正向匹配
字符
含义
|
匹配该字符串左侧子表达式或者右侧子表达式
()
将几个项组合成一个单元,这个单元可以用*+?修饰,并且记住这个单元,以供后面引用
(?:....)
只组合但是不记忆这个分组
\n
和第n个分组第一次匹配的字符相匹配,分组是圆括号中的子表达式,从左到右的第几个表达式。
(?=p)
 要求接下来的字符都于p匹配
(?!p)
 要求接下来的字符都不能于p匹配。
 
 
 
 
 
 
 

 
3 正则的方法
3.1 exec()

3.2 test()
 
4 用以匹配正则的字符串的方法
4.1 search()
serach的参数是一个正则的表达式,返回第一个与之匹配的子串的位置,如果找不到返回-1,如果给的参数不是正则,那么会使用RegExp()初始化成一个正则表达式.
   alert("javascript".search(/script/g));//返回4
   alert("javascript".search(/css/g));//返回-1
4.2 replace()
replace的第一个参数是正则表达式,或者普通的字符,第二个是要替换成的字符,或者fuction,或者$n 如果不加g,查找到第一个匹配的字符替换后就不进行替换了,否则将替换所有匹配的字符。
  "javascript,css,html".replace(/javascript/g,"java");//java,css,html
  "css,c#,c++,html".replace(/(css),c#/,"$1"); //css,c++,html
    下面replace的第二个参数是一个方法,这个方法有三个参数,第一个是要替换的字符串,第二个是要替换的字符串的索引值,第三个是原有的字符串,这个方法必须有return返回值,用返回值来替换要替换的字符串,replace方法不会改变原有字符串; 

技术分享

View Code
4.3 match()
match()里面是一个正则表达式,如果加上g,则全局查找,返回的是匹配到的数组,如果不加g,找到第一个就不继续查找,返回的是一个数组,数组的第一个元素是匹配到的整体字符串,第二个元素是子元素。
 var str=‘eng1eem2mfefn3‘;
    str.match(/\w(\d)/)
["g1", "1"]
 var str=‘eng1eem2mfefn3‘;
    str.match(/\w(\d)/g)
["g1", "m2", "n3"]
4.4 split()
split参数可以是正则,用以将字符串分割成一个数组。

正则表达式

标签:

原文地址:http://www.cnblogs.com/module/p/5355520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!