如何阅读正则表达式
正则表达式是一串 token 的序列,每个 token 各有职责:字面字符匹配自身,字符类([a-z])匹配集合中的任意一个,量词(+ * ? {2,4})指定数量,锚点(^ $ \b)固定位置,分组((…))用于捆绑和捕获。解析器从左到右逐个解释每个 token,说明匹配引擎在该位置会尝试匹配什么。
常见模式详解
- ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ —— 经典的邮箱模式:行首、一个或多个用户名字符、@、域名字符、一个点、2 个以上字母、行尾。
- \d{2,4}[a-z]? —— 2 到 4 位数字,后面跟着一个可选的小写字母。
- (https?:\/\/)?[^\s]+ —— 可选的 http(s):// 后面跟任意非空白字符序列。
提示
- 转义序列(\d \w \s \b \. \/)会作为一个整体来解释——它们不是两个独立的 token。
- 贪婪与懒惰:+ 尽可能多地匹配,+? 则只匹配所需的最少量。
- 先行断言 (?=…) 向前检查但不消耗字符;(?!…) 是其否定形式。
- 解析器支持 JS、Python、Java、Go、PCRE 通用的模式语法——如 i/m/s 等标志字母出现时会特别标注。