使用 Nested Regex 或其他查找单元格中的所有匹配词?
Find ALL matching words in a cell with Nested Regex or other?
我想确定是否可以在 Google 电子表格的单元格中找到特定文本,如下例:
Text
Desired Output
Cynthia and Dale went to the store
Cynthia, Dale
Cynthia went to the store
Cynthia
不幸的是使用了这段代码
IF(REGEXMATCH(A2,"Bob"),"Bob",IF(REGEXMATCH(A2,"Cynthia"),"Cynthia",IF(REGEXMATCH(A2,"Dale"),"Dale","Nobody")))
只有 returns 找到第一个 REGEX 匹配项,而不是我想要的多个匹配项。
任何修改公式的建议都会有所帮助。
可以在此处找到包含示例和代码的电子表格:
https://docs.google.com/spreadsheets/d/1YuyFdEbqgZaSL2IbyyalVLLXsXrIAuqtaxCTXLhSuEU/edit?usp=sharing
提前致谢。
这是一种选择:
C2
中的公式:
=INDEX(SUBSTITUTE(TRIM(REGEXREPLACE(A2:A,".*?\b(Bob|Dale|Cynthia)\b|.*"," "))," ",", "))
这将溢出列。
如果您需要用 'Nobody' 填充空单元格,嵌套的 REGEXREPLACE()
可能会起作用:
C2
中的公式:
=INDEX(IF(A2:A="","",REGEXREPLACE(SUBSTITUTE(TRIM(REGEXREPLACE(A2:A,".*?\b(Bob|Dale|Cynthia)\b|.*"," "))," ",", "),"^$","Nobody")))
或者没有第二次替换:
=INDEX(IF(A2:A="","",SUBSTITUTE(TRIM(REGEXREPLACE(A2:A&" Nobody","(?:.*?\b(Bob|Dale|Cynthia)\b|^.*(Nobody)$|.+)"," "))," ",", ")))
我想确定是否可以在 Google 电子表格的单元格中找到特定文本,如下例:
Text | Desired Output |
---|---|
Cynthia and Dale went to the store | Cynthia, Dale |
Cynthia went to the store | Cynthia |
不幸的是使用了这段代码
IF(REGEXMATCH(A2,"Bob"),"Bob",IF(REGEXMATCH(A2,"Cynthia"),"Cynthia",IF(REGEXMATCH(A2,"Dale"),"Dale","Nobody")))
只有 returns 找到第一个 REGEX 匹配项,而不是我想要的多个匹配项。
任何修改公式的建议都会有所帮助。
可以在此处找到包含示例和代码的电子表格: https://docs.google.com/spreadsheets/d/1YuyFdEbqgZaSL2IbyyalVLLXsXrIAuqtaxCTXLhSuEU/edit?usp=sharing
提前致谢。
这是一种选择:
C2
中的公式:
=INDEX(SUBSTITUTE(TRIM(REGEXREPLACE(A2:A,".*?\b(Bob|Dale|Cynthia)\b|.*"," "))," ",", "))
这将溢出列。
如果您需要用 'Nobody' 填充空单元格,嵌套的 REGEXREPLACE()
可能会起作用:
C2
中的公式:
=INDEX(IF(A2:A="","",REGEXREPLACE(SUBSTITUTE(TRIM(REGEXREPLACE(A2:A,".*?\b(Bob|Dale|Cynthia)\b|.*"," "))," ",", "),"^$","Nobody")))
或者没有第二次替换:
=INDEX(IF(A2:A="","",SUBSTITUTE(TRIM(REGEXREPLACE(A2:A&" Nobody","(?:.*?\b(Bob|Dale|Cynthia)\b|^.*(Nobody)$|.+)"," "))," ",", ")))