【技术】正则表达式笔记(原创)

 

正则表达式基本知识点,包括正则两种创建方法,三种修饰符(i、g、m)、RegExp对象方法(test、exec、compile)、支持正则的string方法(match、search、replace、split)和各种元字符。...



正则表达式基本知识点:

一、两种创建方式:

①、RegExp
var game=new RegExp("game")
var game=new RegExp("game","igm")
//第二个参数可接受i(忽略大小写)、g(全局匹配)、m(多行匹配)三个参数,
②、 /  /
var game=/game/
var game=/game/ig

二、正则对象方法

RegExp对象有两个测试方法:test() 和exec();用于字符串测试

①、test()

接收参数为字符串,返回boolean值。参数为字符串

var pattern=/box/i;

var str="this is a box";

console.log(pattern.test(str));

//true

合成一条,表示为:console.log(/box/i.test("this is a Box"));

②、exec()

匹配了则返回数组,否则返回null;参数为字符串

>console.log(/box/i.exec("this is a Box"));

["Box", index: 10, input: "this is a Box"]

console.log(/box/i.exec("this is a Box")=="Box"); //true

var arr=/box/i.exec("this is a Box");arr; //["Box"]  //匹配上了返回数组

②、complile()在脚本执行过程中编译正则,或者改变正则。

三、支持正则的String方法

在正则应用中,除了test()和exec()两个测试方法,还有如下使用方法:(参数都为正则)

①、match(pattern)

②、replace(pattern,replacement)

③、search(pattern)

④、split(pattern)

①、match(pattern) 匹配得到数组

var str="this is a game,Do you want to Play the Game?";

console.log(str.match(/game/ig));  //["game", "Game"]

var str="this is a game,Do you want to Play the Game?";

console.log(str.match(/game/ig).length); // 2

②、replace(pattern,replacement) 用第二个参数替换第一个参数(第一个参数为匹配到的值)

var str="this is a game,Do you want to Play the Game?";

console.log(str.replace((/game/ig),"text"));

// thisis a text,Do you want to Play the text?

③、search(pattern)查找匹配位置,返回位置,否则返回-1

var str="this is a game,Do you want to Play the Game?";

console.log(str.search(/game/igm));10//匹配到game,返回第一个Game的索引

var str="this is a game,Do you want to Play the Game?";

console.log(str.search(/Game/));39  //匹配到Game,返回第一个Game的索引

var str="this is a game,Do you want to Play the Game?";

console.log(str.search(/Tame/));-1    //匹配不到,返回-1

④、split(pattern) 已匹配到的字符为分割点,分割成数组

var arr="this is a box,it is sigh BOX!".

split(/ /ig);console.log(arr);

//  ["this", "is", "a", "box,it", "is", "sigh", "BOX!"]

var arr="this is a box,it is sigh BOX!".split(/b/ig);console.log(arr);

// ["this is a ", "ox,it is sigh ", "OX!"]

四、正则-元字符(摘自w3c)

基本元字符如下:

元字符描述.查找单个字符,除了换行和行结束符。w查找单词字符。W查找非单词字符。d查找数字。D查找非数字字符。s查找空白字符。S查找非空白字符。匹配单词边界。B匹配非单词边界。查找 NUL 字符。查找换行符。f查找换页符。查找回车符。查找制表符。v查找垂直制表符。xxx查找以八进制数 xxx 规定的字符。xdd查找以十六进制数 dd 规定的字符。uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。由元字符组合成代表某个特定方位的字符集合:

表达式描述[abc]查找方括号之间的任何字符。[^abc]查找任何不在方括号之间的字符。[0-9]查找任何从 0 至 9 的数字。[a-z]查找任何从小写 a 到小写 z 的字符。[A-Z]查找任何从大写 A 到大写 Z 的字符。[A-z]查找任何从大写 A 到小写 z 的字符。[adgk]查找给定集合内的任何字符。[^adgk]查找给定集合外的任何字符。(red|blue|green)查找任何指定的选项。相关量词:

量词描述n+匹配任何包含至少一个 n 的字符串。n*匹配任何包含零个或多个 n 的字符串。n?匹配任何包含零个或一个 n 的字符串。n{X}匹配包含 X 个 n 的序列的字符串。n{X,Y}匹配包含 X 或 Y 个 n 的序列的字符串。n{X,}匹配包含至少 X 个 n 的序列的字符串。n$匹配任何结尾为 n 的字符串。^n匹配任何开头为 n 的字符串。?=n匹配任何其后紧接指定字符串 n 的字符串。?!n匹配任何其后没有紧接指定字符串 n 的字符串。


    关注 匆匆的小屋


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册