正则表达式是什么?

正则表达式(Regular Expression)是用一串符号描述"文本模式"的语言,一行代码顶几十行字符串处理。几乎每个开发者都绕不开它。

核心语法速成

1. 普通字符直接匹配

abc 匹配文本中的 "abc",就这么简单。

2. 字符组:匹配"任意一个"

  • [abc] 匹配 a 或 b 或 c
  • [a-z] 匹配任意小写字母
  • [^abc] 匹配除了 abc 以外的字符
  • \d 等价于 [0-9],\w 匹配字母数字下划线,\s 匹配空白

3. 量词:匹配"多少个"

  • * 0次或多次,+ 1次或多次,? 0次或1次
  • {3} 恰好3次,{2,5} 2到5次

例如手机号:1[3-9]\d{9} —— 1开头,第二位3-9,共11位数字。

4. 锚点:匹配位置

  • ^ 开头,$ 结尾
  • ^https?:// 匹配以 http 或 https 开头的字符串

5. 分组与或

  • (jpg|png|gif) 匹配三种扩展名之一
  • 括号内的内容会被"捕获",可在结果中单独提取

最实用的5个正则

手机号:1[3-9]\d{9}
邮箱:[\w.-]+@[\w.-]+\.\w+
日期:\d{4}-\d{2}-\d{2}
空白字符:\s+
URL:https?://[^\s]+

学习建议

正则是"写出来容易、写对很难"的典型,一定要边写边测。打开我们的正则表达式测试工具,输入模式和文本实时查看每一处匹配的位置和分组,比看十遍教程都有用。