youtube-dl
在他们的CONTRIBUTING documentation中
description = self._search_regex(
r'<span[^>]+id="title"[^>]*>([^<]+)<',
webpage, 'description', fatal=False)
_search_regex
的参数是什么?该文档没有显示'description'
是什么?那是HTML属性吗?
答案 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(关键字命名为组)。