网址映射的 RE2 规范
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本页介绍了在网址映射中使用正则表达式时与使用 RE2 语法相关的要求和限制。
RE2 具有以下内置限制:
- RE2 不支持任意前瞻或后瞻断言,也不支持反向引用。具体而言,不支持以下反向引用运算符:
(?=) - 正向预搜索
(?!) - 负向预搜索
(?<=) - 正向后视
(?<!) - 反向否定后视
\N - 反向引用,其中 N 是一个整数
- RE2 不会将
\cx 识别为 Control-X 字符。
- RE2 无法识别原子分组运算符
(?>...) 和 ++
- RE2 不识别
\C、\G 或 \X。
- RE2 不识别条件子模式
(?(...)...)、注释 (?#...)、模式引用 (?R) (?1) (?P>foo) 或 C 回调 (?C...)。
除了前面所述的 RE2 限制之外,我们还通过使用以下许可名单对正则表达式语法施加了进一步的限制:
- 允许使用单字符运算符
- 群组只能包含 submatch 运算符
- 仅允许不重复的群组
- 字符重复仅允许在单个正则表达式中与以下内容一起使用:
- 范围只能包含以下内容:
空字符串和空字符串的类似项
| 运算符 |
说明 |
^ |
位于文本或行的开头 (m=true) |
$ |
在文本末尾(如 \z 而不是 \Z)或行末尾(m=true) |
\A |
在文字开头 |
\b |
位于 ASCII 字词边界(一侧为 \w,另一侧为 \W、\A 或 \z) |
\B |
不在 ASCII 字词边界 |
\g |
在被搜索的子文本的开头 |
\G |
在上一场比赛结束时 |
\z |
在文字末尾 |
重复次数
| 运算符 |
说明 |
x* |
零个或多个 x,最好是多个 |
x+ |
一个或多个 x,最好是多个 |
x? |
零个或一个 x,首选一个 |
x{n,m} |
N 或 n+1 或 ... 或 m x,偏好更多 |
x{n,} |
N 个或更多 x,最好是更多 |
x{n} |
正好 n 次 |
x*? |
零个或多个 x,首选较少的 x |
x+? |
一个或多个 x,最好是较少的 x |
x?? |
零个或一个 x,首选零个 |
x{n,m}? |
N 或 n+1 或 ... 或 m 次,首选较少的次数 |
x{n,}? |
N 次或更多,首选较少次数 |
x{n}? |
正好 n 次 |
子匹配项
| 运算符 |
说明 |
(re) |
编号捕获组(子匹配项) |
(?P<name>re) |
命名和编号的捕获组(子匹配项) |
(?<name>re) |
命名和编号的捕获组(子匹配项) |
(?:re) |
非捕获组 |
(?flags) |
在当前组内设置标志;非捕获 |
(?flags:re) |
在 re 期间设置标志;非捕获 |
范围
| 运算符 |
说明 |
[] |
范围 |
\d |
数字(≡ [0-9]) |
\D |
非数字(≡ [^0-9]) |
\s |
空白字符(≡ [\t\n\f\r ]) |
\S |
非空白字符(≡ [^\t\n\f\r ]) |
\w |
字词字符(≡ [0-9A-Za-z_]) |
\W |
非字词字符(≡ [^0-9A-Za-z_]) |
[[:alnum:]] |
字母数字 (≡ [0-9A-Za-z]) |
[[:alpha:]] |
字母(≡ [A-Za-z]) |
[[:ascii:]] |
ASCII (≡ [\x00-\x7F]) |
[[:blank:]] |
空白 (≡ [\t ]) |
[[:cntrl:]] |
控制字符 (≡ [\x00-\x1F\x7F]) |
[[:digit:]] |
数字(≡ [0-9]) |
[[:lower:]] |
小写(≡ [a-z]) |
[[:space:]] |
空白字符(≡ [\t\n\v\f\r ]) |
[[:upper:]] |
大写(≡ [A-Z]) |
[[:word:]] |
字词字符(≡ [0-9A-Za-z_]) |
[[:xdigit:]] |
十六进制数字(≡ [0-9A-Fa-f]) |
范围中允许使用的字符
| 字符范围 |
说明 |
0-9, A-Z, a-z |
字母数字 |
\x00-\x7F |
ASCII |
0-9A-Fa-f |
十六进制数字 |
\t\n\v\f\r |
空格符 |
^ |
范围否定 |
!"#$%&'()*+,\-.:;<=>?@[\\\]^_`{|}~ |
其他字符 |
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-12-05。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-12-05。"],[],[]]