self._search_regex 的参数是什么?

What are the parameters to self._search_regex?

youtube-dl 在他们的 CONTRIBUTING documentation

description = self._search_regex(
    r'<span[^>]+id="title"[^>]*>([^<]+)<',
    webpage, 'description', fatal=False)

_search_regex 的参数是什么?文档没有显示 'description' 是什么?那是 HTML 属性吗?

作为一个内部函数(以下划线开头),它没有很好的文档,但你可以找到its definition in the source code

_search_regex是一个效用函数,基本上调用了re.search,但是在正则表达式不匹配的情况下统一处理。这一点很重要,因为许多提取器都使用正则表达式,并且在各处复制错误处理会很烦人(更不用说大量的代码重复了)。

这是它的参数:

  • pattern:被搜索的正则表达式。例如 r'(?:foo|href)\s*=\s*(http://[^"]*)"。通常,第一个捕获的组(即括号中的内容,但不是以 ?: 开头。有关正则表达式的更多信息,请参阅 Python standard library documentation
  • string:要搜索的字符串(即 haystack),从您要连接的服务下载。
  • name:您选择的名称;如果出现故障,这将呈现给用户。在您的提取器中应该是独一无二的。例如 'manifest URL''content section'。这样,如果用户在没有堆栈跟踪的情况下发布错误消息,您会立即知道问题出在哪里。
  • default=NO_DEFAULT:默认值。有时,有一个默认值以防正则表达式不匹配。如果有,请传进来。
  • fatal=True:如果没有给出默认值,这决定了正则表达式匹配失败时的行为。 True:中止提取并抛出详细错误;例如,如果提取视频 URL 失败。 False:只省略警告继续;如果搜索可选字段(例如描述)失败。
  • flags=0 - 显式正则表达式标志。很少用;有关详细信息,请参阅 Python standard library documentation
  • group=None - 匹配不同的组,但第一个。很少使用,只有当你的正则表达式包含命名组时才有意义。有关详细信息,请参阅 Python standard library documentation(关键字 命名组 )。