regex - 用制表符分隔行的正则表达式
问题描述
我有一个包含以下多行的文件
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\那里
反而?
谢谢!
解决方案
正则表达式的结尾"\t\d{6}\t\d{2}\t\w+"
匹配下一个非单词字符,恰好是年份项目之后的破折号。要捕获剩余的字符,我建议使用负字符类,它匹配除\t
. 那是:
"\t\d{6}\t\d{2}\t[^\t]+\t\w+"
通常,这比肯定地陈述所有可能出现的字符要容易。
推荐阅读
- ios - 字符串不是空时被验证为空
- identityserver4 - 使用 IdentityServer4 从数据库显式登录/注销自定义用户
- arrays - 不能在属性初始化程序中使用实例成员“国家”;属性初始化程序在“自我”可用之前运行
- javascript - 粘性菜单/导航,固定菜单时框阴影不起作用
- types - 榆树中的“数字”是什么
- javascript - 使用 onclick() 从数据库中获取详细信息
- php - php检测浏览器是在服务器还是客户端上运行
- visual-studio - 添加和替换数据列表框 (Visual Studio 2013)
- python-3.x - Python over SSH - 事件检测不起作用
- microcontroller - 处理 msp430fr5969 上的多优先级中断