{"meta":{"title":"自定义模式参考","intro":"使用特定的正则表达式语法为 secret scanning 定义准确的自定义模式。","product":"安全性和代码质量","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/code-security","title":"安全性和代码质量"},{"href":"/zh/enterprise-cloud@latest/code-security/reference","title":"Reference"},{"href":"/zh/enterprise-cloud@latest/code-security/reference/secret-security","title":"机密安全性"},{"href":"/zh/enterprise-cloud@latest/code-security/reference/secret-security/custom-patterns","title":"自定义模式"}],"documentType":"article"},"body":"# 自定义模式参考\n\n使用特定的正则表达式语法为 secret scanning 定义准确的自定义模式。\n\n## 自定义模式的正则表达式库\n\nSecret scanning 自定义模式是使用 [Hyperscan 库](https://github.com/intel/hyperscan)定义的，并且只支持 Hyperscan 正则表达式构造（PCRE 语法的子集）。 不支持 Hyperscan 选项修饰符。 有关 Hyperscan 模式构造的详细信息，请参阅 Hyperscan 文档中的[模式支持](https://intel.github.io/hyperscan/dev-reference/compilation.html#pattern-support)。\n\n## 用于手动定义自定义模式的语法\n\nUI 中的 **“More options <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-chevron-down\" aria-label=\"chevron-down\" role=\"img\"><path d=\"M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z\"></path></svg>**”部分可以帮助您手动编写正则表达式。\n\n* \n              **机密格式：** 描述机密本身格式的表达式。\n* \n              **机密之前：** 用于描述机密之前字符的表达式。 默认情况下，此值设置为 `\\A|[^0-9A-Za-z]`，这意味着机密必须位于行首或前面有非字母数字字符。\n* \n              **机密之后：** 描述机密后面的字符的表达式。 默认情况下，此值设置为 `\\z|[^0-9A-Za-z]`，这意味着机密后面必须跟有新行或非字母数字字符。\n* \n              **其他匹配要求：** 机密本身必须或不得匹配的一个或多个可选表达式。\n\n对于简单令牌，通常只需指定机密格式。 其他字段提供了灵活性，以便您可以指定更复杂的机密，而无需创建复杂的正则表达式。\n\n### 自定义模式示例\n\n公司具有具有五个特征的内部令牌。 它们使用不同的字段来指定如何标识令牌，如下所示：\n\n| \n              **特征** | \n              **字段和正则表达式** |\n|----------------|------------------------------|\n| 长度介于 5 到 10 个字符之间 | 机密格式：`[$#%@AA-Za-z0-9]{5,10}` |\n| 不以 `.` 结尾 | 机密之后：`[^\\.]` |\n| 包含数字和大写字母 | 其他要求：机密必须匹配 `[A-Z]` 和 `[0-9]` |\n| 一行中不包含多个小写字母 | 其他要求：机密不得匹配 `[a-z]{2,}` |\n| 包含 `$%@!` 之一 | 其他要求：密钥必须匹配 `[$%@!]` |\n\n这些令牌将与上述自定义模式匹配：\n\n```shell\na9@AAfT!         # Secret string match: a9@AAfT\nee95GG@ZA942@aa  # Secret string match: @ZA942@a\na9@AA!ee9        # Secret string match: a9@AA\n```\n\n这些字符串与上述自定义模式不匹配：\n\n```shell\na9@AA.!\na@AAAAA\naa9@AA!ee9\naAAAe9\n```\n\n## 限制\n\nSecret scanning支持每个组织或企业帐户最多 500 个自定义模式，每个存储库最多 100 个自定义模式。"}