1. Introduction (简介)
1. Introduction (简介)
本规范描述了一种可互操作的正则表达式 (Regular Expression, 缩写为 "regexp") 风格, 称为 I-Regexp。
I-Regexp 不提供高级正则表达式功能, 如捕获组 (Capture Groups)、前瞻 (Lookahead) 或反向引用 (Backreferences)。它仅支持布尔匹配 (Boolean Matching) 功能, 即测试给定的正则表达式是否与给定的文本片段匹配。
I-Regexp 支持完整的 Unicode 字符集 (Unicode Scalar Values)。I-Regexp 字符串本身以及与之匹配的字符串都是 Unicode 标量值序列 (通常以 UTF-8 编码形式 [STD63] 进行交换)。
I-Regexp 是 XML Schema Definition (XSD) 正则表达式 [XSD-2] 的子集。
本文档包括将 I-Regexp 转换为多种知名正则表达式风格的指导。
I-Regexp 的开发是由 JSONPath 工作组 (Working Group, WG) 的工作推动的。该工作组希望在其规范 [JSONPATH-BASE] 中包含对在 JSONPath 过滤器中使用正则表达式的支持, 但未能找到一个在流行库中可互操作的有用正则表达式规范。
1.1 Terminology (术语)
本文档使用缩写 "regexp" 来表示编程中通常称为 "正则表达式" (Regular Expression) 的内容。术语 "I-Regexp" 作为名词使用, 表示符合本规范要求的字符串 (Unicode 标量值序列); 其复数形式为 "I-Regexps"。
本规范使用 Unicode 术语, [UNICODE-GLOSSARY] 提供了一个很好的入口。
本文档中的关键词 "MUST" (必须), "MUST NOT" (绝对不能), "REQUIRED" (必需), "SHALL" (应), "SHALL NOT" (不应), "SHOULD" (应该), "SHOULD NOT" (不应该), "RECOMMENDED" (推荐), "NOT RECOMMENDED" (不推荐), "MAY" (可以) 和 "OPTIONAL" (可选) 应按照 BCP 14 [RFC2119] [RFC8174] 中的描述进行解释, 当且仅当它们以全大写形式出现时, 如此处所示。
本文档中的语法规则应解释为 ABNF (Augmented Backus-Naur Form), 如 [RFC5234] 和 [RFC7405] 中所述, 其中 [RFC5234] 第 2.3 节的 "字符" (Characters) 为 Unicode 标量值。