EfficTools Logo
EfficTools
返回博客列表
正则表达式

正则表达式入门:从零开始掌握文本匹配

E
EfficTools Team
2024年12月8日9 分钟阅读

正则表达式入门:从零开始掌握文本匹配

什么是正则表达式?

正则表达式(Regular Expression,简称 Regex)是一种用于描述字符串匹配模式的工具。它可以用来:

  • 验证输入格式(邮箱、手机号等)
  • 搜索和替换文本
  • 提取特定信息
  • 数据清洗和处理

基础语法

字面字符

最简单的正则表达式就是普通字符,它们匹配自身:

``

hello 匹配 "hello"

123 匹配 "123"

`

特殊字符(元字符)

字符含义
.匹配任意单个字符
^匹配字符串开头
$匹配字符串结尾
匹配前面的字符 0 次或多次
+匹配前面的字符 1 次或多次
?匹配前面的字符 0 次或 1 次
\转义特殊字符

字符类

`

[abc] 匹配 a、b 或 c

[a-z] 匹配任意小写字母

[0-9] 匹配任意数字

[^abc] 匹配除 a、b、c 以外的字符

`

预定义字符类

`

\d 匹配数字,等同于 [0-9]

\D 匹配非数字

\w 匹配单词字符(字母、数字、下划线)

\W 匹配非单词字符

\s 匹配空白字符

\S 匹配非空白字符

`

量词

`

{n} 精确匹配 n 次

{n,} 匹配至少 n 次

{n,m} 匹配 n 到 m 次

`

分组和捕获

使用圆括号 () 可以创建捕获组:

`

(abc)+ 匹配一个或多个 "abc"

(\d{4})-(\d{2})-(\d{2}) 匹配日期格式

`

常用正则表达式示例

邮箱验证

`

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

`

手机号验证(中国)

`

^1[3-9]\d{9}$

`

URL 匹配

`

https?:\/\/[\w\-]+(\.[\w\-]+)+[\w\-.,@?^=%&:/~+#]

`

中文字符

`

[\u4e00-\u9fa5]+

`

在 JavaScript 中使用正则

`javascript

// 创建正则表达式

const regex = /hello/i; // i 表示不区分大小写

// 测试匹配

regex.test('Hello World'); // true

// 搜索匹配

'Hello World'.match(/\w+/g); // ['Hello', 'World']

// 替换

'Hello World'.replace(/World/, 'Regex'); // 'Hello Regex'

``

使用 EfficTools 测试正则

学习正则表达式最好的方法是实践。使用我们的正则表达式测试工具,您可以:

  • 实时测试正则表达式
  • 查看匹配结果高亮
  • 查看捕获组内容
  • 支持多种标志位

学习建议

  • 从简单开始,逐步增加复杂度
  • 多练习,多测试
  • 使用在线工具验证
  • 阅读他人的正则表达式,学习技巧
  • 总结

    正则表达式是一项值得投入时间学习的技能。虽然初看起来可能有些复杂,但掌握基础语法后,它将成为您处理文本的得力助手。

    正则表达式Regex教程JavaScript
    分享这篇文章