请给出一个详细的Python正则表达式示例，用于匹配邮箱地址，并要求解释每个部分的作用。段落数：2，句子数：3，不得使用分号。

正则表达式示例：`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`

这个正则表达式的目的是匹配常见的邮箱地址格式。首先，`^` 表示字符串的开始，确保匹配从字符串的开头开始。然后，`[a-zA-Z0-9._%+-]+` 匹配邮箱的用户名部分，允许字母、数字、点、下划线、百分号、加号和减号。接下来，`@` 符号用于分隔用户名和域名。

域名部分由 `[a-zA-Z0-9.-]+` 匹配，允许字母、数字、点和减号。最后，`\.[a-zA-Z]{2,}` 匹配域名的顶级域名，如 `.com` 或 `.org`，要求至少两个字母。`$` 表示字符串的结束，确保整个字符串被匹配。
user
正则表达式示例：`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`

这个正则表达式的目的是匹配常见的邮箱地址格式。首先，`^` 表示字符串的开始，确保匹配从字符串的开头开始。然后，`[a-zA-Z0-9._%+-]+` 匹配邮箱的用户名部分，允许字母、数字、点、下划线、百分号、加号和减号。

域名部分由 `[a-zA-Z0-9.-]+` 匹配，允许字母、数字、点和减号。`@` 符号用于分隔用户名和域名。最后，`\.[a-zA-Z]{2,}` 匹配域名的顶级域名，如 `.com` 或 `.org`，要求至少两个字母。`$` 表示字符串的结束，确保整个字符串被匹配。
assistant