Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何在后续计算中使用数组公式的输出?_Regex_Xpath_Web Scraping_Google Sheets_Google Sheets Importxml - Fatal编程技术网

Regex 如何在后续计算中使用数组公式的输出?

Regex 如何在后续计算中使用数组公式的输出?,regex,xpath,web-scraping,google-sheets,google-sheets-importxml,Regex,Xpath,Web Scraping,Google Sheets,Google Sheets Importxml,我有一个谷歌表,其中我得到了Youtube视频的持续时间,如下所示: =REGEXEXTRACT(IMPORTXML(A2,"//*[@itemprop='duration']/@content"),"PT(\d+)M(\d+)S") 这给了我两个单元格和两个值(分和秒)。但是,我想对它们进行进一步的计算(将分钟乘以60,再加上秒)。如果有,我如何在函数中“访问”这些值? 您希望以秒为单位检索持续时间 您希望使用电子表格的内置公式来实现这一点 如果我的理解是正确的,那么这些示例公式呢 样本配

我有一个谷歌表,其中我得到了Youtube视频的持续时间,如下所示:

=REGEXEXTRACT(IMPORTXML(A2,"//*[@itemprop='duration']/@content"),"PT(\d+)M(\d+)S")
这给了我两个单元格和两个值(分和秒)。但是,我想对它们进行进一步的计算(将分钟乘以60,再加上秒)。如果有,我如何在函数中“访问”这些值?

  • 您希望以秒为单位检索持续时间
  • 您希望使用电子表格的内置公式来实现这一点
如果我的理解是正确的,那么这些示例公式呢

样本配方:
  • 在此示例公式中,单元格“A2”的URL类似于
    https://www.youtube.com/watch?v=###
  • 检索到的持续时间将转换为时间格式,并将该值作为第二个值检索。
    • 例如,当
      IMPORTXML(A2,“/*[@itemprop='duration']/@content”)
      返回
      PT1M10S
      时,
      值(REGEXREPLACE(“PT1M10S”,“PT(\d+)M(\d+)S),“00:$1:$2”)*24*3600)
      返回
      70
    • 例如,即使时间超过1小时,也会返回类似
      PT123M45S
      的值。和
      =VALUE(REGEXREPLACE(“PT123M45S”,“PT(\d+)M(\d+)S”,“00:$1:$2”)*24*3600)
      返回
      7425
参考资料:
如果我误解了你的问题,而这不是你想要的结果,我道歉

补充: 与其他模式一样,如果要使用
=REGEXEXTRACT(IMPORTXML(A2,“/*[@itemprop='duration']/@content”),“PT(\d+)M(\d+)S”)
,那么下面的公式如何

样本配方:
  • 在此公式中,使用并计算数组中的值
或类似于此:

=TEXT(VALUE("00:"&SUBSTITUTE(REGEXREPLACE(
 IMPORTXML(A1, "//*[@itemprop='duration']/@content"), "PT|S", ), "M",":")), "[ss]")*1
或最短的:

=REGEXREPLACE(IMPORTXML(A1,"//*[@itemprop='duration']/@content"), 
 "PT(\d+)M(\d+)S", "00:$1:$2")*86400
=TEXT(VALUE("00:"&SUBSTITUTE(REGEXREPLACE(
 IMPORTXML(A1, "//*[@itemprop='duration']/@content"), "PT|S", ), "M",":")), "[ss]")*1
=REGEXREPLACE(IMPORTXML(A1,"//*[@itemprop='duration']/@content"), 
 "PT(\d+)M(\d+)S", "00:$1:$2")*86400