正则表达式
目前,正则表达式已经在很多软件中得到广泛的应用,包括linux,unix和HP等操作系统;以及PHP,Java,C#,JS等开发环境中。另外在许多应用软件,移动端中,都可以看到正则表达式的影子。
本文主要分享用以描述“文本模式”的正则表达式语法。正则表达式中的String和RegExp中的方法会在之后的文章与大家分享。
但由于要充分理解本文中的案例,本文简单介绍涉及一些RegExg中的方法,希望读者留意。
文章目录
正则表达式(regular expression)是一个描述字符串匹配模式的对象。它具有以下几个主要功能:
- 正则表达式可以从字符串中查找满足需要的数据
- 正则表达式可以从字符串中获取满足需要的数据
- 正则表达式可以从字符串中替换满足需要的数据
在JS中定义一个正则表达式
在JavaScript中,正则表达式用RegExp对象来表示,可以使用RegExp()构造函数来创建RegExp对象
- 字面量定义
/…/ 以 / 开头,/ 结尾,中间内容为正则表达式。即正则表达式直接量定义为包含在一对斜杠之间的字符。
let regex = /[abc]/; //创建一个新的RegExp对象,并将其赋值给regex变量
- 使用new RegExp 对象定义
let regex = new RegExp("[abc]"); //此代码可以将一个字符串转成正则表达式
或
let regex = new RegExp(/[abc]/);
RegExp中的两个常用方法
- text():返回一个boolean值,代表是否匹配(匹配成功返回true,否则返回false)
let str = "abcdefg";
let regex = /[abc]/;
console.log(regex.test(str));//匹配成功,返回结果为true
- exec():exec()会返回一个数组,数组中索引号为0的元素是整个正则表达式匹配的内容。若不匹配,返回值为null
let str = "abcdefg";
let regex = /[abc]/;
console.log(regex.exec(str));//匹配成功,返回结果为abc
索引大于0的数据,代表的是正则表达式中子表达式(分组匹配的内容)
exec()有如下属性:
- index: 代表 匹配的元素的索引位置
- groups : 用来获取 命名捕获分组 匹配的数据
- input : 原始字符串
正则表达式中的直接量字符
字符 | 匹配 |
---|---|
\o | NUL字符(\u0000) |
\t | 制表符(\u0009) |
\n | 换行符(\u000A) |
\v | 垂直制表符(\ |