实时测试正则表达式,高亮匹配结果
正则表达式(Regular Expression,简称 Regex)是一种用于描述字符串匹配模式的微型语言。它被几乎所有编程语言支持,广泛用于文本搜索、数据验证、字符串替换等场景。掌握正则表达式是开发者的基本功之一。
| 模式 | 含义 | 模式 | 含义 |
|---|---|---|---|
. |
任意字符(除换行) | ^ |
字符串开头 |
\d |
数字 [0-9] |
$ |
字符串结尾 |
\w |
[a-zA-Z0-9_] |
(abc) |
捕获组 |
\s |
空白字符 | a|b |
a 或 b |
[abc] |
字符类 | [^abc] |
否定字符类 |
* 0+ · + 1+ · ? 0或1 · {n} 恰好n次 · {n,m} n到m次
g 全局 · i 忽略大小写 · m 多行(^$ 匹配每行)· s . 匹配换行
邮箱 /^[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}$/
手机 /^1[3-9]\d{9}$/
URL /^https?:\/\/[\w\-.]+(:\d+)?(\/\S*)?$/
g、i、m 等标志位默认情况下量词是贪婪的,会尽可能多地匹配字符。在量词后加 ? 变为非贪婪模式,匹配尽可能少的字符。例如对 <b>text</b> 使用 <.*> 匹配整个字符串,而 <.*?> 只匹配 <b>。
不同语言的正则引擎存在差异。例如 JavaScript 不支持后行断言(ES2018 前)、命名组语法不同((?P<name>) vs (?<name>))。本工具使用 JavaScript 引擎,如需其他引擎请注意语法转换。
使用 Unicode 范围 [一-龥] 匹配常用汉字,或使用 Unicode 属性 \p{Script=Han}(需启用 u 标志)匹配所有汉字字符。