Google 工作表正则表达式从字符串中提取城市名称

Google Sheets regexextract city names from string

媒体团队正在 运行 一些我需要报道的广告活动。报告需要基于城市或城市组。活动名称的一个小例子是:

Brand-Platform-Safety-YT-DV360-Female-FTP-Non-Skippable-10Sec-Next8-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Male-FTP-Non-Skippable-20Sec-Bengaluru-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Female-FTP-Non-Skippable-6Sec-Bengaluru-Top10HHI-Android-6th jan'22
Brand-Disinfection-Display-DV360-Male-RTP-Display-Top10City-Top10HHI-Android-6th jan'22
Brand-Platform-Safety-YT-DV360-Female-FTP-Non-Skippable-10Sec-Next12-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Female-FTP-Non-Skippable-6Sec-Kolkata-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Male-FTP-Non-Skippable-20Sec-Kolkata-Top10HHI-Android-6th jan'22

我需要从这些活动名称中提取城市名称。他们根据不同的标准设置了 100 多个活动,所以我很难手动完成。假设活动名称存储在我的电子表格的 A 列中,我几乎可以用这个公式得到整个结果:

=ARRAYFORMULA(IF(ROW(A:A)=1,"City",
IF(ISBLANK(A:A),,
REGEXEXTRACT(A:A,"Sec-(.+)-Top"))))

公式有两个问题。它目前依赖于以“Sec-”开头并以“-Top”结尾的字符串并提取它们之间的数据。

非常感谢任何帮助!

尝试:

=ARRAYFORMULA({"City";
 IF(ISBLANK(A2:A),,REGEXREPLACE(
 IFNA(REGEXEXTRACT(A2:A, "Sec-(.+)-Top"), 
      REGEXEXTRACT(A2:A, "Display-(.+)-Top")), ".*Display-", ))})