正则重温(学习笔记)

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

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

匹配非单词边界

查找null字符

查找换行符

f

查找换页符

查找回车符

查找制表符

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的字符串

原文地址:https://www.cnblogs.com/xcdl/p/7427688.html