正则表达式
正则表达式语法
普通字符:
字母和数字:表示它们自身,例如 a、1。
特殊字符:有些字符具有特殊含义,如 .、*、+,如果想匹配它们本身,需要使用转义字符 \,例如 \. 匹配句号。
字符类:
[ ]:用来匹配方括号内的任意一个字符,例如 [aeiou] 匹配任何一个元音字母。
[^ ]:匹配不在方括号内的任意字符,例如 [^0-9] 匹配任何非数字字符。
特殊字符:
.:匹配除换行符之外的任意字符。
^:匹配字符串的开头。
$:匹配字符串的结尾。
重复:
*:匹配前面的元素零次或多次。
+:匹配前面的元素一次或多次。
?:匹配前面的元素零次或一次。
{n}:匹配前面的元素恰好 n 次。
{n,}:匹配前面的元素至少 n 次。
{n,m}:匹配前面的元素至少 n 次,但不超过 m 次。
分组:
( ):用来分组表达式,可以在后面使用 | 运算符表示或的关系。
转义字符:
\:用来转义特殊字符,使其失去特殊含义。
元字符:
\d:匹配任意数字字符。
\D:匹配任意非数字字符。
\w:匹配任意字母、数字或下划线字符。
\W:匹配任意非字母、数字或下划线字符。
\s:匹配任意空白字符。
\S:匹配任意非空白字符。
创建正则表达式:
// 使用字面量创建正则表达式
var regex = /pattern/;
// 使用RegExp构造函数创建正则表达式
var regex = new RegExp('pattern');
基本匹配:
var str = "Hello, World!";
var regex = /Hello/;
console.log(regex.test(str)); // 输出 true
修饰符:
在正则表达式中,修饰符可以用来执行不区分大小写匹配、全局匹配等操作。
var str = "Hello, World!";
var regex = /hello/i; // 不区分大小写
console.log(regex.test(str)); // 输出 true
元字符:
正则表达式中的元字符用于匹配特定类型的字符,例如\d用于匹配数字字符。
var str = "12345";
var regex = /\d+/; // 匹配一个或多个数字
console.log(regex.test(str)); // 输出 true
替换:
正则表达式还可以用来替换字符串中的内容。
var str = "Hello, World!";
var regex = /World/;
var newStr = str.replace(regex, "JavaScript");
console.log(newStr); // 输出 "Hello, JavaScript!"