我有一张Google表格。我想查看每个单元格中的文本,这是由斜杠分隔的两个选项,如下所示:
Yes / No
或者可能有两个原因然后用另一个斜线分隔一个解释,如:
Yes / Yes / Reasons for the answer
我希望在第一个斜杠后删除所有内容,但保留第二个斜杠,然后保留所有内容(如果存在)。
最好的方法是什么?我想我想使用REGEXPREPLACE
,我可能想要这样的东西:
=REGEXPREPLACE($currentcell, "\/.*[\/|$]", "")
但有两件事:
[\/|$]
但不确定这是否正确。 更新:(2)可能很棘手。 REGEXPREPLACE
似乎并不能满足我的需求。 REGEXEXTRACT
也没有。嗯。
答案 0 :(得分:1)
如果我理解你,你需要转换:
Yes / No → Yes
Yes / Yes / Reasons for the answer → Yes / Reasons for the answer
No / Yes / Reasons for the answer → No / Reasons for the answer
以下是migth帮助的公式:
=SUBSTITUTE(A1,CONCATENATE(REGEXEXTRACT(A1,".+(\/.+)\/.+|(\/.+)")),"")
此公式中使用的正则表达式查找第一个斜杠和最多第二个斜杠,或者唯一的斜杠和前导符号。 CONCATENATE
用于组合字符串,例如使用substitute
。 REGEXREPLACE
也可以运作:
=REGEXREPLACE(A1,CONCATENATE(REGEXEXTRACT(A1,".+(\/.+)\/.+|(\/.+)")),"")
如果这不起作用,请提供更多关于您想要的结果的示例。也有可能有更优雅的解决方案。
答案 1 :(得分:0)
您也可以使用"或"来简化它。正则表达式中的条件:
=CONCATENATE(REGEXEXTRACT(A1,"(^.*\/).*\/(.*$)|(^.*)\/.*$"))
注意:您希望较长的选项成为检查的第一个条件,否则较短的选项将始终为真。