Excel正则表达式:删除最后一组后的所有内容

时间:2014-09-15 11:35:36

标签: regex

我有包含痕迹(prestastop产品)的CSV文件

我想删除最后一个分隔符(产品名称)之后的内容,我的结构是:

COL1 | COL2 | COL3 |产物

我可以用简单的正则表达式删除,问题是分隔符的数量并不总是相同,所以例如([^|]+/[^|]+/[^|]+/[^|]+|).*不会工作。

有没有办法用一个正则表达式做到这一点?

我想:

col1|col2|col3|product
col1|col2|col3|col4|product
col1|col2|col3|col5|product

成为

col1|col2|col3
col1|col2|col3|col4
col1|col2|col3|col5

我认为简单的方法是从右到左阅读而不是从左到右......

2 个答案:

答案 0 :(得分:0)

使用以下正则表达式匹配最后一部分,包括|符号。只需用空字符串替换匹配的字符就可以得到所需的输出。

正则表达式:

\|[^|]*$

更换字符串:

Empty string

DEMO

答案 1 :(得分:0)

^(.*)\|.*

试试这个。替换

$1

参见演示。

http://regex101.com/r/jT3pG3/12