0

我一直在使用正则表达式构建器和教程,但无法弄清楚这一点。我有一个可以找到的关键字,我需要在同一行或下一行找到时间戳。

我的文字看起来像这样

16:51:35.536 This is a bunch of completely random text although it has a keyword. This keyword is unique
16:51:35.806 This is another line which has all sorts of crap i dont really care about.

现在我试图捕捉的是获得时间戳的前 8 个字符,即 16:51:35

所以我试图做这样的事情

it has a keyword (.*) ([0-9){2}:[0-9){2}:[0-9){2}) 

但无论出于何种原因,即使我在末尾添加 /m 或 /s 或 /S,它也会卡在该行

这适用于进入下一行:

([\s\S]*)

所以我尝试了

it has a keyword ([\s\S]*)(?=[0-9){2}:[0-9){2}:[0-9){2}) but that didnt work either

我很确定它没有我做的那么复杂,任何想法

4

1 回答 1

1

如果您想要关键字字符串 'foobar' 的行的前八个字符,那么您可以使用:

^(.{8})[^\n]*foobar.*?$

您可以在http://rubular.com/r/gW8GCRrYkg看到这项工作。 这很容易修改为获取下一行的前八个字符,或者对前八个字符施加约束。

于 2013-08-22T00:29:49.680 回答