如何删除列中最后一个正斜杠之前的文本?

Posted

技术标签:

【中文标题】如何删除列中最后一个正斜杠之前的文本?【英文标题】:How do I delete text before the last forward slash in a column? 【发布时间】:2018-02-15 09:42:43 【问题描述】:

我有一个电子表格,其中包含显示文件路径的列。它们看起来像这样:

/j/t/jtfdsrn-01r_1_1_19.jpg
/j/t/jtfdsrn-01r_1_1_18.jpg
/j/t/jtfdsrn-01r_1_1_17.jpg
/j/t/jtfdsrn-01r_1_1_16.jpg
/j/t/jtfdsrn-01r_1_1_15.jpg
/j/t/jtfdsrn-01r_1_1_14.jpg
/j/t/jtfdsrn-01r_1_1_13.jpg
/j/t/jtfdsrn-01r_1_1_12.jpg

我想删除最后一个斜线之前的所有内容,使它们看起来像这样:

/jtfdsrn-01r_1_1_19.jpg
/jtfdsrn-01r_1_1_18.jpg
/jtfdsrn-01r_1_1_17.jpg
/jtfdsrn-01r_1_1_16.jpg
/jtfdsrn-01r_1_1_15.jpg
/jtfdsrn-01r_1_1_14.jpg
/jtfdsrn-01r_1_1_13.jpg
/jtfdsrn-01r_1_1_12.jpg

我可以使用公式或内置函数来执行此操作吗?我使用 OpenOffice。


我尝试了TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1))) 公式,但我得到了一个错误:501。

【问题讨论】:

Extract data of a cell after colon的可能重复 这个问题在过去出现过很多次。上面链接的答案中提供了最近的一个很好的解决方案。请在发布问题之前搜索该网站。 =TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1))) 尝试使用该公式时出现错误 501。 @Oscar 这些值的长度总是相同还是可能改变? SUBSTITUTE 函数在 OO 中绝对有效,所以只需按照您的示例执行 =SUBSTITUTE(A1,"/j/t","") 【参考方案1】:

如果你的目标字符串总是相同的长度:

=RIGHT(A1,23) 

Input: /j/t/jtfdsrn-01r_1_1_19.jpg        Output: /jtfdsrn-01r_1_1_19.jpg

如果你有可变长度的字符串并且文件路径中总是有 3 个反斜杠:

="/" &RIGHT(A1, LEN(A1) -FIND("*", SUBSTITUTE(A1,"/","*",3), 1))

Input: /j/t/jtfdsrn-01r_1_1_1000.jpg      Output: /jtfdsrn-01r_1_1_1000.jpg

如果文件路径中有可变长度字符串和可变反斜杠:

="/" &RIGHT(A1, LEN(A1) -FIND("*", SUBSTITUTE(A1,"/","*", LEN(A1)-LEN(SUBSTITUTE(A1,"/","") )), 1))

Input: a/b/c/j/t/jtfdsrn-01r_1_1_19.jpg   Output: /jtfdsrn-01r_1_1_19.jpg

【讨论】:

【参考方案2】:

让我知道这是否对你有用,如果你的价值观没有改变,不应该有问题,但如果有问题,请调查一下。

=RIGHT(A2;LEN(A2)-FIND("/";A2;3)-1)

【讨论】:

请注意,如果 OP 使用此答案,他们可能需要将 ; 替换为 ,,具体取决于区域设置【参考方案3】:

在查找和替换中仅使用不带括号的通配符 (*/)

【讨论】:

以上是关于如何删除列中最后一个正斜杠之前的文本?的主要内容,如果未能解决你的问题,请参考以下文章

删除网址中第一个正斜杠之前的所有内容[重复]

在 JavaScript 中删除最后一个逗号之前的文本

python如何去掉字符串中的斜杠

如何从字符串中删除最后一个字符

如何删除JTable的选定行(在第一列中有复选框)的文本?

如何在颤动中使用列中的文本时删除文本溢出