我有一个文本文件,我希望从中删除一些数据。使用冒号分隔数据:'作为分隔符。大约有9个分离。第7列之后的数据通常为空,因此无用,但额外的冒号仍在那里。
该文件的一个例子是这样的:
column1:column2:column3:column4:column5:column6:column7:column8:column9:column10
我希望从column8之后删除信息。所以要删除的数据是:
:column9:column10
有人可以告诉我如何在Regex中这样做吗?
我一直在阅读,没有在哪里找到一种方法可以在x个冒号之后分离冒号和文本。
非常感谢您提供的任何帮助。
答案 0 :(得分:4)
$_ = join ":", ( split /:/, $_, -1 )[0..7];
或
s/(?::[^:]*){2}\z//;
答案 1 :(得分:2)
以下正则表达式将保留前8列并丢弃所有其他列。
s/^[^:]*(?::[^:]*){7}\K.*//;
假设简单的单行记录。