正则表达式说明

·  阅读 975
正则表达式说明

前言:什么是正则?

1.正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

2.搜索模式可用于文本搜索和文本替换。

3.正则表达式是由一个字符序列形成的搜索模式。

4.当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

5.正则表达式可以是一个简单的字符,或一个更复杂的模式。

6.正则表达式可用于所有文本搜索和文本替换的操作。

正则表达式的创建方式


var reg = /pattern/flags
// 字面量创建方式
var reg = new RegExp(pattern,flags);
//实例创建方式
pattern:正则表达式
flags:标识(修饰符)
标识主要包括:
1. i 忽略大小写匹配
2. m 多行匹配,即在到达一行文本末尾时还会继续寻常下一行中是否与正则匹配的项
3. g 全局匹配 模式应用于所有字符串,而非在找到第一个匹配项时停止

字面量创建方式和构造函数创建方式的区别

  1. 字面量创建方式不能进行字符串拼接,实例创建方式可以

var regParam = 'cm';
var reg1 = new RegExp(regParam+'1');
var reg2 = /regParam/;
console.log(reg1); // /cm1/
console.log(reg2); // /regParam/

  1. 字面量创建方式特殊含义的字符不需要转义,实例创建方式需要转义

var reg1 = new RegExp('\d'); // /d/
var reg2 = new RegExp('\\d') // /\d/
var reg3 = /\d/; // /\d/

元字符

代表特殊含义的元字符


\d : 0-9之间的任意一个数字
\d只占一个位置
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\s : 空格或者空白等
\D : 除了\d
\W : 除了\w
\S : 除了\s .
: 除了\n之外的任意一个字符
\ : 转义字符
| : 或者
(): 分组
\n : 匹配换行符
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
^ : 限定开始位置 => 本身不占位置
$ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符

代表次数的量词元字符


* : 0到多个
+ : 1到多个
? : 0次或1次 可有可无
{n} : 正好n次;
{n,} : n到多次
{n,m} : n次到m次

正则的特性

  • 贪婪性

    所谓的贪婪性就是正则在捕获时,每一次会尽可能多的去捕获符合条件的内容。
    如果我们想尽可能的少的去捕获符合条件的字符串的话,可以在量词元字符后加?

  • 懒惰性

    懒惰性则是正则在成功捕获一次后不管后边的字符串有没有符合条件的都不再捕获。
    如果想捕获目标中所有符合条件的字符串的话,我们可以用标识符g来标明是全局捕获


var str = '123aaa456';
var reg = /\d+/; //只捕获一次,一次尽可能多的捕获
var res = str.match(reg)
console.log(res) // ["123", index: 0, input: "123aaa456"]
reg = /\d+?/g; //解决贪婪性、懒惰性
res = str.match(reg) console.log(res) // ["1", "2", "3", "4", "5", "6"]

最后

附一个正则表达式的思维导图 image.png

分类:
前端
标签:
分类:
前端
标签:
收藏成功!
已添加到「」, 点击更改