js 正则表达式语法大全

正则表达式(Regular Expression)是一种用来描述匹配一系列字符串的模式的方法。它是一种强大的工具,可以在文本中进行高效的搜索和替换操作。在各种编程语言中都有对正则表达式的支持,如JavaScript、Python、Java等。
本文将详细介绍JavaScript中正则表达式的语法,包括基本语法、特殊字符、量词、分组、以及常见的用法。
基本语法
在JavaScript中,正则表达式可以用两种方式表示:字面量和构造函数。下面是使用字面量方式定义一个正则表达式的示例:
let pattern = /ab+c/;
其中/是正则表达式的开始和结束标记,ab+c是具体的匹配模式。
特殊字符
正则表达式中有许多特殊字符,用来表示不同的含义或操作。下表列举了一些常用的特殊字符及其含义:
| 字符 | 含义 |
|---|---|
| . | 匹配除了换行符以外的任意字符 |
| \d | 匹配数字,等价于[0-9] |
| \w | 匹配字母、数字、下划线,等价于[A-Za-z0-9_] |
| \s | 匹配空白字符,包括空格、制表符、换行符等 |
| ^ | 匹配字符串的开始位置 |
| $ | 匹配字符串的结束位置 |
| [ ] | 匹配方括号中任意一个字符 |
量词
量词用来指定某个模式匹配的次数。常用的量词包括*、+、?、{n}、{n,}、{n,m}。
*表示零次或多次匹配+表示一次或多次匹配?表示零次或一次匹配{n}表示匹配n次{n,}表示至少匹配n次{n,m}表示匹配n到m次
分组
正则表达式中使用小括号()来表示分组,可以对匹配的内容进行分组。通过分组可以在匹配结果中提取想要的部分。
let pattern = /(\d{3})-(\d{4})-(\d{4})/;
let phoneNumber = "123-4567-8901";
let matches = phoneNumber.match(pattern);
console.log(matches[1]); // 输出匹配的区号
console.log(matches[2]); // 输出匹配的前四位号码
console.log(matches[3]); // 输出匹配的后四位号码
常见用法
匹配邮箱地址
let pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
let email = "example@example.com";
if (pattern.test(email)) {
console.log("邮箱地址格式正确");
} else {
console.log("邮箱地址格式错误");
}
替换文本
let pattern = /apple/g;
let text = "I like apple, do you like apple?";
let newText = text.replace(pattern, "banana");
console.log(newText); // 输出"I like banana, do you like banana?"
提取URL
let pattern = /(http|https):\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g;
let text = "The website is http://www.example.com";
let urls = text.match(pattern);
console.log(urls); // 输出["http://www.example.com"]
总结
正则表达式是一种强大的文本匹配工具,可以在各种编程语言中灵活应用。
极客笔记