正则表达式

正则表达式 (简称 regex )允许开发人员根据模式匹配字符串、提取子匹配信息,或简单地测试字符串是否符合该模式。正则表达式在许多编程语言中都有使用,JavaScript 的语法受 Perl 的启发。

我们建议你阅读 正则表达式指南 ,以全面了解可用的正则表达式语法及其工作原理。

描述

正则表达式 是形式语言理论中的一个重要概念。正则表达式是一种描述可能是无限的字符串集合(称为 语言 )的方法。正则表达式的核心需要具备以下特征:

  • 可在语言中使用的一系列 字符 ,称为 字母表
  • 连接 ab 表示“字符 a 后跟字符 b ”。
  • 并集 a|b 表示“ a b ”。
  • 克莱尼星号 (Kleene star): a* 表示“零个或多个 a 字符”。
  • 假设有一个有限的字母表(如 26 个英文字母或整个 Unicode 字符集),那么所有正则表达式语言都可以通过上述特征生成。当然,许多模式用这种方式来表达非常繁琐(如“10 位数字”或“一个非空格的字符”),因此 JavaScript 正则表达式包含许多速记符号,下面将一一介绍。

    备注: 由于存在 反向引用 (正则表达式必须具有有限状态),JavaScript 正则表达式实际上并不“正则”。不过,反向引用仍然是一个非常有用的特性。