为什么在 Azure DevOps 扩展的 task.json 中使用 #regex?它检查什么?
Why is #regex used in task.json in Azure DevOps extension? What does it check for?
我遇到了这个问题,想知道这意味着什么以及它是如何工作的?
这里使用#regex有什么意义,它是如何展开的?
https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DownloadPackageV0/task.json
"endpointUrl": "{{endpoint.url}}/{{ **#regex ([a-fA-F0-9\-]+/)[a-fA-F0-9\-]+ feed }}_apis**/Packaging/Feeds/{{ **#regex [a-fA-F0-9\-]*/([a-fA-F0-9\-]+) feed** }}{{#if view}}@{{{view}}}{{/if}}/Packages?includeUrls=false"
我还想知道如果提要中有数千个包,它 return 并在任务输入 UI 下拉列表中显示多少包。是否有一个已知的限制,例如前 100 个或类似的限制?
Regex 代表 正则表达式 ,它允许您匹配任何 模式 而不是精确的字符串。您可以在 Azure Devops here
中找到有关如何使用它的更多信息
这个正则表达式非常具体。在这种情况下,正则表达式 ([a-fA-F0-9\-]+/)[a-fA-F0-9\-]+
\ 匹配 一个或多个 以下 1) 字母 a-f
(小写或大写)或 2) \
或 3) -
后跟 /
然后再 这些字符中的一个或多个 。
您可以将正则表达式 [a-fA-F0-9\-]+/)[a-fA-F0-9\-]+
复制到 https://regexr.com/ 中进行试验,看看哪些与模式匹配,哪些不匹配。
示例:
- 匹配:
a/a
a/b
abcdef-\/dcba
- 但不匹配:
/a
、abcdef
、this-doesn't-match
请注意,完整端点由正则表达式和硬编码字符串的串联组成!
#regex
似乎并没有实际记录在任何地方,但它需要两个 space-delimited 参数。第一个是正则表达式,第二个是“路径表达式”,用于标识要匹配的值,在本例中为 feed
输入参数的值。如果正则表达式匹配值,它 returns 第一个捕获子表达式,否则它 returns 空字符串。
在此特定上下文中,feed
参数的格式为 'projectId/feedId',其中 projectId 和 feedId 是 GUID,而 organization-scoped 供稿(即供稿)的 projectId 和 / 被删除不在 项目内)。因此,第一个正则表达式提取项目 ID 并将其插入 URL,第二个正则表达式提取提要 ID 并将其插入 URL.
在撰写本文时,API 调用的默认限制是 1000。
我遇到了这个问题,想知道这意味着什么以及它是如何工作的? 这里使用#regex有什么意义,它是如何展开的?
https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/DownloadPackageV0/task.json
"endpointUrl": "{{endpoint.url}}/{{ **#regex ([a-fA-F0-9\-]+/)[a-fA-F0-9\-]+ feed }}_apis**/Packaging/Feeds/{{ **#regex [a-fA-F0-9\-]*/([a-fA-F0-9\-]+) feed** }}{{#if view}}@{{{view}}}{{/if}}/Packages?includeUrls=false"
我还想知道如果提要中有数千个包,它 return 并在任务输入 UI 下拉列表中显示多少包。是否有一个已知的限制,例如前 100 个或类似的限制?
Regex 代表 正则表达式 ,它允许您匹配任何 模式 而不是精确的字符串。您可以在 Azure Devops here
中找到有关如何使用它的更多信息这个正则表达式非常具体。在这种情况下,正则表达式 ([a-fA-F0-9\-]+/)[a-fA-F0-9\-]+
\ 匹配 一个或多个 以下 1) 字母 a-f
(小写或大写)或 2) \
或 3) -
后跟 /
然后再 这些字符中的一个或多个 。
您可以将正则表达式 [a-fA-F0-9\-]+/)[a-fA-F0-9\-]+
复制到 https://regexr.com/ 中进行试验,看看哪些与模式匹配,哪些不匹配。
示例:
- 匹配:
a/a
a/b
abcdef-\/dcba
- 但不匹配:
/a
、abcdef
、this-doesn't-match
请注意,完整端点由正则表达式和硬编码字符串的串联组成!
#regex
似乎并没有实际记录在任何地方,但它需要两个 space-delimited 参数。第一个是正则表达式,第二个是“路径表达式”,用于标识要匹配的值,在本例中为 feed
输入参数的值。如果正则表达式匹配值,它 returns 第一个捕获子表达式,否则它 returns 空字符串。
在此特定上下文中,feed
参数的格式为 'projectId/feedId',其中 projectId 和 feedId 是 GUID,而 organization-scoped 供稿(即供稿)的 projectId 和 / 被删除不在 项目内)。因此,第一个正则表达式提取项目 ID 并将其插入 URL,第二个正则表达式提取提要 ID 并将其插入 URL.
在撰写本文时,API 调用的默认限制是 1000。