输入正则表达式与测试文本,实时查看匹配数量、位置、捕获组;支持替换模式,可用 $1 $2 引用捕获组。
//g
⚡
输入正则表达式,实时查看匹配结果与捕获组
📖 常用正则速查
邮箱
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}手机号
1[3-9]\d{9}URL
https?://[\w\-]+(\.[\w\-]+)+(/[\w\-._~:/?#\[\]@!$&'()*+,;=%]*)?中文字符
[\u4e00-\u9fa5]+IP 地址
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)日期
\d{4}[-/](0?[1-9]|1[0-2])[-/](0?[1-9]|[12]\d|3[01])HTML 标签
<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>(.*?)</\1>十六进制色
#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b❓ 常见问题
正则表达式的 g、i、m、s、u 标志分别是什么意思?
g(global)全局匹配,找出所有匹配而非第一个;i(ignoreCase)忽略大小写;m(multiline)多行模式,^ 和 $ 匹配每行首尾;s(dotAll)让 . 也能匹配换行符;u(Unicode)启用完整 Unicode 支持,正确处理 emoji 和四字节字符。
如何用正则提取捕获组内容?
用圆括号 () 定义捕获组,如 (\d{4})-(\d{2})-(\d{2}) 可提取日期的年月日。本工具会在匹配详情中显示 $1、$2 等捕获组的值。命名捕获组语法为 (?<name>...),结果中会显示对应名称。
替换模式中 $1 $2 怎么用?
在替换字符串中,$1 引用第一个捕获组,$2 引用第二个,以此类推。例如正则 (\w+)@(\w+),替换为 $2/$1,可将 user@domain 变为 domain/user。命名捕获组用 $<name> 引用。
为什么我的正则在这里能匹配,但在代码里不行?
常见原因:1)字符串字面量中反斜杠需要双写,如代码里写 \\d 才等于正则的 \d;2)忘记加 g 标志导致只匹配第一个;3)多行文本需要 m 标志让 ^ $ 匹配行首尾;4)含 emoji 的字符串需要 u 标志。