正则表达式测试工具
一个功能强大的正则表达式测试工具,帮助您编写、测试和调试正则表达式。
正则表达式测试工具
测试和验证正则表达式,提供实时匹配结果和详细解释
没有找到匹配项
功能特点
- 实时匹配:输入正则表达式和测试文本后立即显示匹配结果
- 多模式支持:支持全局(g)、忽略大小写(i)、多行(m)等正则标志
- 分组捕获:显示匹配结果中的分组信息,包括命名分组
- 替换功能:支持使用正则表达式进行文本替换
- 常用正则模板:提供常用正则表达式模板快速选择,按类别分类
- 高亮显示:在测试文本中高亮显示所有匹配项
- 错误提示:实时检测并提示正则表达式错误
- 正则解释:对正则表达式进行分解和解释
使用方法
- 在"正则表达式"输入框中输入您的正则表达式
- 在"测试文本"区域中输入要测试的文本内容
- 选择需要的正则标志(全局、忽略大小写等)
- 查看匹配结果、分组信息和正则解释
- 可选:使用替换功能进行文本替换操作
常用正则表达式示例
邮箱和身份验证类
- 电子邮件地址:
regex
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- 电子邮件地址(严格):
regex
^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$
- 中国身份证号:
regex
^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
- 中国手机号码:
regex
^1[3-9]\d{9}$
- 中等强度密码(6-20位字母数字组合):
regex
^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$
- 强密码(8-20位,含大小写字母和数字):
regex
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,20}$
URL和网络相关
- URL地址:
regex
^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$
- 带查询参数的URL:
regex
^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?\??([\w-]+=[\w-]+&?)*$
- IPv4地址:
regex
^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$
- IPv6地址:
regex
^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
- MAC地址:
regex
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
日期和时间类
- 日期(YYYY-MM-DD):
regex
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
- 日期(DD/MM/YYYY):
regex
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$
- 24小时制时间:
regex
^([01]?[0-9]|2[0-3]):[0-5][0-9]$
- 12小时制时间:
regex
^(0?[1-9]|1[0-2]):[0-5][0-9]\s?(AM|PM|am|pm)$
- 日期时间(YYYY-MM-DD HH:MM:SS):
regex
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\s(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$
数字和金额类
- 整数(正负均可):
regex
^-?\d+$
- 正整数:
regex
^[1-9]\d*$
- 小数(正负均可):
regex
^-?\d+\.\d+$
- 人民币金额(元):
regex
^\d+(\.\d{1,2})?$
- 带货币符号的金额:
regex
^[¥$€]?\s?\d{1,3}(,\d{3})*(\.\d{1,2})?$
- 百分比:
regex
^100(\.0{1,2})?%$|^\d{1,2}(\.\d{1,2})?%$
文本和字符串类
- 中文字符:
regex
[\u4e00-\u9fff]
- 英文字母:
regex
^[a-zA-Z]+$```
- **用户名(4-20位字母数字下划线)**:
```regex
^[a-zA-Z0-9_]{4,20}$
- 十六进制颜色代码:
regex
^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
- HTML标签:
regex
<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)
- JSON格式:
regex
^{\s*"[^"]*"\s*:\s*("[^"]*"|\d+|true|false|null)\s*(,\s*"[^"]*"\s*:\s*("[^"]*"|\d+|true|false|null)\s*)*}$
特殊用途类
- XML标签:
regex
<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>(.*?)<\/\1>
- Base64编码:
regex
^[A-Za-z0-9+/]*={0,2}$
- MD5哈希值:
regex
^[a-fA-F0-9]{32}$
- SHA1哈希值:
regex
^[a-fA-F0-9]{40}$
- UUID:
regex
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
- 信用卡号:
regex
^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|6(?:011|5[0-9]{2})[0-9]{12}|(?:2131|1800|35\d{3})\d{11})$
- ISBN号:
regex
^(?:ISBN(?:-1[03])?:? )?(?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]$
- HTML注释:
regex
<!--.*?-->
- CSS十六进制颜色:
regex
#([a-fA-F0-9]{3}|[a-fA-F0-9]{6})\b
- CSS RGB颜色:
regex
rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)
- CSS RGBA颜色:
regex
rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([01]|0?\.\d+)\s*\)
正则表达式标志
- g (全局):查找所有匹配而非在第一个匹配后停止
- i (忽略大小写):匹配时忽略大小写差异
- m (多行):使 ^ 和 $ 匹配每行的开头和结尾
- s (单行):使点号 . 匹配包括换行符在内的所有字符
- u (Unicode):正确处理Unicode字符
- y (粘性):从目标字符串的当前位置开始匹配
正则表达式语法参考
基本匹配
.
:匹配任意单个字符(除换行符外)\w
:匹配字母、数字、下划线\d
:匹配数字\s
:匹配空白字符[abc]
:匹配方括号中的任意一个字符
量词
*
:匹配前面的元素零次或多次+
:匹配前面的元素一次或多次?
:匹配前面的元素零次或一次{n}
:匹配前面的元素恰好n次{n,}
:匹配前面的元素至少n次{n,m}
:匹配前面的元素至少n次,但不超过m次
位置锚点
^
:匹配字符串的开始$
:匹配字符串的结束\b
:匹配单词边界
分组和捕获
(expr)
:捕获分组,匹配expr并捕获匹配项(?:expr)
:非捕获分组,匹配expr但不捕获匹配项(?<name>expr)
:命名捕获分组,匹配expr并将匹配项捕获到名称为name的组中
替换功能
使用替换功能时,您可以使用以下特殊替换模式:
$&
:插入匹配的子串$n
:插入第n个捕获分组匹配的子串,其中n是1-99的数字$<name>
:插入命名捕获分组匹配的子串$$
:插入一个"$"字符
技术说明
本工具使用JavaScript正则表达式引擎,与现代浏览器中的正则表达式功能完全兼容。所有匹配和替换操作均在浏览器端完成,无需服务器交互,确保您的数据隐私和安全。
其他工具
如果您需要其他开发工具,请查看我们的工具合集。