首页 > 解决方案 > 用制表符分隔行的正则表达式

问题描述

我有一个包含以下多行的文件

123456 89 2018-02-12 14:47:07 +0000 行 234567 90 2019-02-13 09:02:01 +0000 那里

所以我想把它们分成每行的最后四个部分

这是“\t\d{6}\t\d{2}\t\w+”的正则表达式

它发出

123456\t89\t2018 234567\t90\t2019

如何更新正则表达式以获得

123456\t89\t2018-02-12 14:47:07\那里 234567\t90\t2019-02-13 09:02:01\那里

反而?

谢谢!

标签: regex

解决方案


正则表达式的结尾"\t\d{6}\t\d{2}\t\w+"匹配下一个非单词字符,恰好是年份项目之后的破折号。要捕获剩余的字符,我建议使用负字符类,它匹配除\t. 那是:

"\t\d{6}\t\d{2}\t[^\t]+\t\w+"

通常,这比肯定地陈述所有可能出现的字符要容易。


推荐阅读