【技术】正则表达式笔记(原创)
正则表达式基本知识点,包括正则两种创建方法,三种修饰符(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 的字符串。
关注 匆匆的小屋
微信扫一扫关注公众号