我具有以下链接结构(例如,无法加入链接):
https://zoom.us/j/345678634?pwd=fdgSDdfdfasgdgJEeXNaRjNBZz09
我的目标是在两个不同的单元格中提取两个数字
第一个: 345678634
我尝试过:
(?<=/j/).(?=?pwd)
第二个: fdgSDdfdfasgdgJEeXNaRjNBZz09
我尝试过(除其他以外):
(?<=?pwd).
我想到的是第二个是?pwd=
后面的所有内容,而第一个是/j/
和?pwd=
之间的所有内容。我只是不知道如何使用正则表达式来完成这项工作。
答案 0 :(得分:2)
您可以尝试:
.*?\/j\/(\d+)\?pwd=(\w+)
上述正则表达式的解释:
.*?
-匹配懒惰 j
之前的所有内容。\/j\/
-从字面上匹配/j/
。(\d+)
-代表第一个或多个匹配组的捕获组数字。\?
-从字面上匹配?
。pwd=
-从字面上匹配pwd=
。(\w+)
-代表第二个捕获单词字符的捕获组,即[0-9a-zA-Z_]
一次或多次。答案 1 :(得分:1)
不幸的是,RE2不支持环视(AFAIK)。但似乎您可以使用:
=REGEXEXTRACT(A1,"(\d+).*=(.*)")
(
-打开第一个捕获组。
\d+
-至少匹配一位数字。)
-关闭第一个捕获组。.*
-匹配零个或多个字符(贪婪)=
-匹配文字=
。(
-打开第二个捕获组。
.*
-匹配除换行符以外的任何字符,零次或多次。)
-关闭第二个捕获组。由于 spill 功能,两组都将被提取到相邻的单元格中。
如果要避免使用REGEX
,第二种选择是使用SPLIT
和QUERY
。但是,根据您的数据,我不确定哪个会更快处理:
=QUERY(SPLIT(SUBSTITUTE(A1,"?pwd=","/"),"/"),"Select Col4,Col5")