百度工程师带你玩转正则

作者:微信小助手

发布时间:2023-01-12T15:08:11



作者 | 向阳

导读 
introduction
在很多技术领域,都有正则的身影。但许多像我一样的人,只闻其名。因此将正则常用知识汇总,便于查阅。正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的工具。因此正则表达式是用于匹配字符串中字符组合的模式。
正则表达式可以很方便的提取我们想要的信息,所以正则表达式是一个很重要的知识点! 欢迎大家一起学习~

全文4082字,预计阅读时间11分钟。

01

正则概述

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。


02

基本语法

2.1 定义方式

字面量方式:/^\d+$/g,

new RegExp("^\\d+$", "g")

2.2 修饰符

2.3 元字符

一个正则表达式模式是由简单的字符所构成的,比如 /abc/;或者是简单和特殊字符的组合,比如 /ab*c/

2.4 其他断言

断言的组成之一是边界。对于文本、词或模式,边界可以用来表明它们的起始或终止部分,分为边界类断言与其他断言。边界类断言有 ^, $, \b, \B,其他断言有 x(?=y), x(?!y), (?<=y)x, (?<!y)x。

注:需要关注写法与真正匹配到的字符串!!!


03

正则对象的属性和方法

3.1 属性

△正则属性和方法



var reg=/ab/g;reg.ignoreCase; // false,检测是否含有i 属性reg.global; // true,检测是否含有g 属性reg.multiline; // false,检测是否含有m 属性reg.source; // "ab",匹配内容体var regex =new RegExp("\u{61}","u");regex.unicode // true
const str1 = "foo bar foo";const regex1 = /foo/dg;regex1.hasIndices // Output: trueregex1.exec(str1).indices[0] // Output: Array [0, 3]regex1.exec(str1).indices[0] // Output: Array [8, 11]const str2 = "foo bar foo";const regex2 = /foo/;regex2.hasIndices // Output: falseregex2.exec(str2).indices // Output: undefined

3.2 相关方法

这些模式被用于RegExpexec