匹配单个字符型元字符
| 元字符 | 中文名称 | 匹配对象 |
|---|---|---|
. | 点号 | 匹配(除换行符之外)单个任意字符 |
[] | 字符组 | 匹配单个列出的字符 |
[^] | 排除型字符组 | 匹配单个未列出的字符 |
语法声明
本页示例使用的JavaScript正则语法声明 const regexp = /pattern/flags:
点号 .
元字符.的作用是匹配任意单个字符,像这样:
javascript
const regexp = /./;
const result = regexp.exec("AchooLuv");
console.log(result[0]); // 匹配结果为: A也可以使用标准量词改变其匹配的数量,像这样:
javascript
const regexp = /.{3}Luv/;
const result = regexp.exec("AchooLuv");
console.log(result[0]); // 匹配结果为: hooLuv在字符组内部
javascript
const regexp = /[.]/;
const result = regexp.test("AchooLuv");
console.log(result); // 匹配结果为: false此时元字符.被正则引擎视为普通字符点号,而匹配字符串AchooLuv不包含字符.,故匹配失败。
字符组 []
元字符[]的作用是匹配单个列出的字符,像这样:
javascript
const regexp = /[Lo]/;
const result = regexp.exec("AchooLuv");
console.log(result[0]); // 匹配结果为: o奇怪!匹配结果为什么不是字符L呢?
再看看这个例子:
javascript
const regexp = /[Lo]{2}/;
const result = regexp.exec("AchooLuv");
console.log(result[0]); // 匹配结果为: oo咦?为什么还是没有字符L呢?至于为什么会是这些匹配结果,你可以前往匹配原理中引擎的匹配规则了解详细介绍!
排除型字符组 [^]
元字符[^]的作用是在文本中匹配字符组内未列出的第一个字符,像这样:
javascript
const regexp = /[^Achoo]/;
const result = regexp.exec("AchooLuv");
console.log(result[0]); // 匹配结果为: L当你看完了匹配原理中的引擎的匹配规则时,可以检验下自己是否真的看懂了:
逐一尝试
javascript
const regexp = /[^choo]{2}/;
const result = regexp.exec("AchooLuv");
console.log(result); // 匹配结果为: ['Lu', index: 5]
const regexp = /[^hoo]{2}/;
const result = regexp.exec("AchooLuv");
console.log(result); // 匹配结果为:['Ac', index: 0]
const regexp = /[^hoo]{3}/;
const result = regexp.exec("AchooLuv");
console.log(result); // 匹配结果为:['Luv', index: 5]
const regexp = /[^hoo]{4}/;
const result = regexp.exec("AchooLuv");
console.log(result); // 匹配失败,返回:null