正则表达式:找到之前没有时间戳的换行符

时间:2014-11-05 09:40:50

标签: regex

如果之前没有时间戳(可能是标签),我会尝试删除所有换行符

我能找到所有我不想替换的东西,但我需要做些什么

IF NOT timestamp (""|\t) BEFORE \n THEN REMOVE \N

到目前为止,我所开发的内容并未对此行tt denmark 22:05

进行判断

在第一个正则表达式部分之前,我怎么能但不是?

[^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}\s*]\n{1,}

1 个答案:

答案 0 :(得分:0)

答案是否定的背后。

假设您的时间戳与\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}匹配,那么

(?<!(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})|\s)\s*\n

应匹配whitspace和不在时间戳之前的换行符。

并非所有的正则表达式都支持负面的后瞻,如果你的味道不支持这种结构我不认为有一个优雅的解决方案。 - 你能做的最好的就是列举各种可能性;

(\D(\d|\d:\d{2}(:\d{s})?)|[^:](\d{2}(:\d{s})?))\s*\n

等。这将很快变得不可读。