使用此公式将返回两个单独列中的值:=ARRAYFORMULA(REGEXEXTRACT(A2:A, "(.+)\?|(.+)\"""))我如何修改它以返回同一列中的所有内容?如果我删除括号(),它就可以工作,但最后一个字符?或“将出现在末尾。
=ARRAYFORMULA(REGEXEXTRACT(A2:A, "(.+)\?|(.+)\"""))
qltillow1#
您可以使用
=ARRAYFORMULA(REGEXEXTRACT(A2:A, "(.+)[?""]"))
模式匹配
(.+)
[?"]
?
"
同时考虑以下变化:
=ARRAYFORMULA(REGEXEXTRACT(A2:A, "(.+?)[?""]")) =ARRAYFORMULA(REGEXEXTRACT(A2:A, "([^?""]+)[?""]"))
"(.+?)[?""]"变体最多匹配第一个出现的"或?。"([^?""]+)[?""]"也最多匹配第一个出现的字符,但它也可以匹配换行符。
"(.+?)[?""]"
"([^?""]+)[?""]"
ql3eal8s2#
尝试:
=INDEX(IFERROR(REGEXEXTRACT(A1:A, "^(?:https?:\/\/)?(?:ftp:\/\/)?(?:www\.)?([^\/]+)")))
2条答案
按热度按时间qltillow1#
您可以使用
模式匹配
(.+)
-组1(组值实际上是此处的返回值):一个或多个除换行符以外的字符,尽可能多[?"]
-一个?
或"
字符。同时考虑以下变化:
"(.+?)[?""]"
变体最多匹配第一个出现的"
或?
。"([^?""]+)[?""]"
也最多匹配第一个出现的字符,但它也可以匹配换行符。ql3eal8s2#
尝试: