我一直在与正则表达式构建器和教程进行混合,并且无法解决这个问题。我有一个关键字,我可以找到,我需要在同一行或下一行找到时间戳。
我的文字看起来像这样
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
我很确定它不如我制作它,任何想法
答案 0 :(得分:1)
如果你想要一行的前八个字符和关键字字符串'foobar',那么你可以使用:
^(.{8})[^\n]*foobar.*?$
你可以在http://rubular.com/r/gW8GCRrYkg看到这项工作。这很容易修改,以获得下一行的前八个字符,或者对前八个字符设置约束。