正则重温(学习笔记)

好久没自己写正则了,重新学习~~

1、创建正则表达式与修饰符

a) 创建正则表达式

var  re=new RegExp(“\\w+”)  或 var  re=/\w+/

b)  RegExp的修饰符

i – 用来执行不区分大小写的匹配

var  patt1=/route/i;

g – 用于执行全文的搜索(不是找到第一个就停止,而是找到所有的匹配)

var  patt1=/is/g;

m – 执行多行匹配

结合起来使用:

var patt1=/is/gi;

2、RegExp 对象方法

a)    exec()

搜索字符串中的指定值,返回被指定的值,如果没有发现匹配则返回null

var patt1=/e/;

patt1.exec(‘this is eggle’);   返回e

b)   test()

搜索字符串指定的值,根据结果返回真或假

var patt1=/e/;

patt1.test(‘this is eggle’);   返回true

3、支持正则表达式的String 对象方法

1)    search() 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,如果没有则返回-1,有就返回所在位置

语法:string.search(searchValue)

例: var str="Mr. Blue has a blue house";
str.search(/blue/i);   结果: 4

2)   match() 用于在字符串中检索指定的值,或找到一个或多个正则表达式的匹配,结果返回一个array,没有匹配结果则返回null

语法: string.match(regexp)

Var  str=”The rain in SPAIN stays mainly in the plain"

Var n=Str.match(/ain/gi) 结果:n= ain,AIN,ain,ain

3)    replace() 用于在字符串中用一些字符串替换另一些字符串,或替换与正则表达式匹配的子串

语法: string.replace(searchVal,newVal)

例: var str="Mr Blue has a blue house and a blue car";

var n=str.replace(/blue/gi, "red"); 结果: Mr red has a red house and a red car

4)   split() 用于把一个字符串分割成字符串数组,结果返回一个数组,被用来分割的不会显示在返回的结果中

语法: string.split(separator,limit)(limit是指数组返回的最大长度)

例: var str='How are out you think ?'
str.split(/o/gi,3);
结果: ["H", "w are ", "ut y"]

4、方括号

用于查找某个范围内的字符

[abc]—查找方括号之间的任何字符串

[^abc] – 查找不在方括号之间的字符

[0-9] –查找任何0-9的数字

(red|blue|green) – 查找任何指定的选项

5、元字符

元字符

描述

.

查找单个字符,除了换行符和行结束符

\w

查找单词字符

\W

查找非单词字符

\d

查找数字

\D

查找非数字字符

\s

查找空白字符

\S

查找非空白字符

\b

匹配单词边界

\B

匹配非单词边界

\0

查找null字符

\n

查找换行符

\f

查找换页符

\r

查找回车符

\t

查找制表符

\v

查找垂直制表符

\xxx

查找以八进制数xxx 规定的字符

\xdd

查找以十六进制数dd规定的字符

\uxxxx

查找以十六进制数 xxxx 规定的 Unicode 字符。

6、量词(被匹配的假定为n, /n/)

量词

描述

n+

匹配任何包含至少一个n 的字符串,例: /n+/ 匹配”mounth”

n*

匹配任何包含0次、或1次、或多次n的字符串,例 /bo*/ 匹配”booooo”,匹配”bird”,但是不匹配”goooo”

n?

匹配任何包含零个或一个n 的字符串,例: /e?le?/ 匹配”angel”

n{x}

匹配包含x 个n的序列字符串,例/a{2}/ 匹配”caaady” 的前’aa’

n{x,}

x是正整数,匹配n出现至少出现x次,例/a{2,}/ 匹配”caaady” 的’aaa’

n{x,y}

x,y为正整数,n至少出现x次,至多出现y次,例/a{2,4}/ 匹配”caaaaa”的”aaaa”

n$

匹配n结尾的字符串

^n

匹配开头为n 的字符串

?=n

匹配任何其后紧接指定字符串n的字符串

?!n

匹配任何其后没有紧接指定字符串n的字符串

posted @ 2017-08-25 13:50  西城东岚  阅读(200)  评论(0编辑  收藏  举报