智能生成和解释正则表达式,支持各种常见模式匹配
将您的文字指令转换为公式,或输入公式获取解释。
通过和AI对话来在线编辑Excel
使用AI将您的文字指令转换为SQL查询语句。
生成Excel VBA(Visual Basic for Applications)代码,用于自动化任务和创建Microsoft Excel中的自定义解决方案。
上传您的Excel文件,使用我们的AI驱动的图表生成器生成漂亮的图表。
使用我们的AI驱动的思维导图生成器将您的文本转换为漂亮的思维导图。轻松编辑和自定义您的思维导图。
使用AI智能生成和解释正则表达式,支持各种文本模式匹配和数据验证。
使用AI根据文字描述生成精美图片,支持多种尺寸,免费
> 本文为 JavaScript 正则表达式(RegExp)入门到进阶的完整教程,包含语法规则、常用元字符、修饰符、断言、分组、贪婪匹配与懒惰匹配等内容,适用于前端开发、爬虫抓取、表单校验等应用场景。适合零基础和进阶用户学习与参考。
const regex1 = /abc/; // 字面量方式
const regex2 = new RegExp('abc'); // 构造函数方式
修饰符 | 描述 |
---|---|
g |
全局匹配 |
i |
忽略大小写 |
m |
多行匹配 |
s |
允许 . 匹配换行符(ES2018) |
u |
支持 Unicode(ES6) |
y |
粘性匹配(ES6) |
示例:
const re = /hello/gi;
const str = 'Hello hello';
console.log(str.match(re)); // ["Hello", "hello"]
字符 | 含义 |
---|---|
. |
匹配任意字符(除换行) |
\d |
匹配一个数字 [0-9] |
\D |
匹配非数字字符 |
\w |
匹配字母数字或下划线 |
\W |
匹配非字母数字或下划线 |
\s |
匹配空白字符 |
\S |
匹配非空白字符 |
\b |
匹配单词边界 |
\B |
非单词边界 |
\\ |
匹配反斜杠 |
/[abc]/ // 匹配 'a' 或 'b' 或 'c'
/[a-z]/ // 匹配小写字母
/[A-Z]/ // 匹配大写字母
/[0-9]/ // 匹配数字
/[^abc]/ // 匹配除 a b c 之外的任意字符
量词 | 含义 |
---|---|
* |
匹配前一项 0 次或多次 |
+ |
匹配前一项 1 次或多次 |
? |
匹配前一项 0 次或 1 次 |
{n} |
恰好 n 次 |
{n,} |
至少 n 次 |
{n,m} |
至少 n 次,至多 m 次 |
示例:
/\d{4}/.test("2025"); // true
/ab{2,4}c/.test("abbbc"); // true
/(abc)/ // 捕获分组
/(abc){2}/ // 捕获重复分组
/(?:abc)/ // 非捕获分组
/(a)(b)(c)/ // 多个捕获组
提取匹配内容:
const match = /(hello) (\w+)/.exec("hello world");
console.log(match[1]); // hello
console.log(match[2]); // world
/\d+(?=px)/ // 匹配后面跟 px 的数字
/\d+(?!px)/ // 匹配后面不是 px 的数字
/(?<=\$)\d+/ // 匹配前面是 $ 的数字
/(?<!$)\d+/ // 匹配前面不是 $ 的数字
表达式 | 匹配行为 |
---|---|
.* |
贪婪(尽可能多) |
.*? |
懒惰(尽可能少) |
示例:
const str = '<p>text</p><p>more</p>';
const greedy = /<p>.*<\/p>/;
const lazy = /<p>.*?<\/p>/g;
console.log(str.match(greedy)); // ['<p>text</p><p>more</p>']
console.log(str.match(lazy)); // ['<p>text</p>', '<p>more</p>']
/^[w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,}$/.test("[email protected]");
/^1[3-9]\d{9}$/.test("13888888888");
const cleaned = str.replace(/\s+/g, '');
const domain = url.match(/https?:\/\/([^\/]+)/)[1];
方法 | 描述 |
---|---|
test(str) |
测试字符串是否匹配 |
exec(str) |
返回匹配结果对象(带分组) |
str.match(re) |
返回所有匹配项(含全局匹配) |
str.replace() |
替换匹配内容 |
str.split(re) |
使用正则分隔字符串 |
str.search(re) |
返回首次匹配位置 |
本教程系统整理了 JavaScript 正则表达式的完整语法与实际应用案例,适合前端开发、后端开发、文本处理等各种使用场景。掌握正则表达式能够大幅提升字符串处理效率。