目录


1. 什么是正则表达式?

正则表达式(Regular Expression,简称 Regex)是一种用于 匹配、搜索、替换 字符串的强大工具。它广泛应用于 文本处理、数据验证、爬虫开发、日志分析等领域

例如,验证电子邮件格式的正则表达式:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$


2. 正则表达式的基本语法

2.1 元字符(Metacharacters)

元字符用于构建正则表达式的规则,常见的元字符包括:

元字符说明示例
.匹配任意单个字符(换行符除外)a.b 可匹配 acb
^匹配字符串开头^Hello 仅匹配以 Hello 开头的字符串
$匹配字符串结尾world$ 仅匹配以 world 结尾的字符串
\d匹配任何数字(等价于 [0-9]\d{3} 可匹配 123
\w匹配任何字母、数字或下划线\w+ 可匹配 hello_123
\s匹配空格(包括换行符、制表符)Hello\sWorld 可匹配 Hello World

2.2 字符类(Character Classes)

字符类允许匹配 特定类型的字符

表达式说明示例
[abc]匹配 abcgr[ae]y 可匹配 graygrey
[^abc]匹配 abc[^0-9] 匹配非数字
[0-9]匹配 数字 0-9\d 也可匹配数字
[a-z]匹配 小写字母 a-z[A-Z] 匹配大写字母

2.3 量词(Quantifiers)

量词用于 指定重复次数

量词说明示例
*匹配 0次或多次a* 可匹配 ""aaaaa
+匹配 1次或多次a+ 可匹配 aaaa,但不匹配 ""
?匹配 0次或1次colou?r 可匹配 colorcolour
{n}匹配 恰好 n 次\d{3} 仅匹配 3 位数
{n,}匹配 至少 n 次\d{2,} 匹配 2 位或更多数字
{n,m}匹配 n 到 m 次\d{2,4} 匹配 2 到 4 位数

2.4 组和引用(Groups and References)

  • 分组 ():将多个字符视为一个整体,如 (ab)+ 匹配 ababab
  • 反向引用 \1, \2...:用于匹配前面匹配到的组,例如 (\d{2})\1 可匹配 12123434

示例:

(\d{2})\1

匹配 12123434 这类重复数字。


3. 常见正则表达式示例

需求正则表达式示例匹配
邮箱匹配^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$user@example.com
手机号匹配(中国)^1[3-9]\d{9}$13812345678
IP 地址^(?:\d{1,3}\.){3}\d{1,3}$192.168.1.1
日期(YYYY-MM-DD)^\d{4}-\d{2}-\d{2}$2025-03-30
纯数字^\d+$123456

4. 在不同编程语言中使用正则表达式

Python

import re
pattern = r"\d{3}-\d{3}-\d{4}"
text = "My phone number is 123-456-7890."
match = re.search(pattern, text)
if match:
    print("匹配成功:", match.group())

JavaScript

let pattern = /\d{3}-\d{3}-\d{4}/;
let text = "My phone number is 123-456-7890.";
let match = text.match(pattern);
console.log("匹配成功:", match[0]);


5. 正则表达式测试工具


6. 参考资料


这篇文章是否符合你的需求?如果需要更详细的案例或某些特定语言的示例,可以告诉我!😊