self._search_regex的参数是什么?

时间:2018-07-23 22:21:40

标签: python youtube-dl

youtube-dl在他们的CONTRIBUTING documentation

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

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

1 个答案:

答案 0 :(得分:1)

作为内部函数(以下划线开头),没有充分的文档记录,但您可以找到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:默认值。有时,如果regexp不匹配,则存在默认值。如果是这样,请在此处传递。
  • fatal=True:如果未指定默认值,则确定正则表达式匹配失败时的行为。 True:中止提取并引发详细错误;例如,如果提取视频URL失败。 False:仅忽略警告并继续;如果搜索可选字段(例如说明)失败。
  • flags=0-显式正则表达式标志。很少使用;有关更多信息,请参见Python standard library documentation
  • group=None-匹配另一个组,但第一个不匹配。很少使用,仅当您的正则表达式包含命名组时才有意义。有关更多详细信息,请参见Python standard library documentation(关键字命名为组)。