Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
regex获取任何字符,包括换行符,直到一个空行_Regex - Fatal编程技术网

regex获取任何字符,包括换行符,直到一个空行

regex获取任何字符,包括换行符,直到一个空行,regex,Regex,以下是示例: YYYY-MM-DD HH:II:SS Message Log Message Log Message Log YYYY-MM-DD HH:II:SS Message Log 我想从第一行的时间戳得到所有字符,包括后行的所有字符,直到空白行< /P> 这是预期输出: YYYY-MM-DD HH:II:SS Message Log Message Log Message Log 我试过这样做: /^(\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2

以下是示例:

YYYY-MM-DD HH:II:SS Message Log
  Message Log
  Message Log

YYYY-MM-DD HH:II:SS Message Log

我想从第一行的时间戳得到所有字符,包括后行的所有字符,直到空白行< /P> 这是预期输出:

YYYY-MM-DD HH:II:SS Message Log
  Message Log
  Message Log
我试过这样做:

/^(\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2}\:\d{2}) ([^\n]*)/s

第一组是时间戳,然后第二组尝试获得所有字符,包括后行的所有字符,直到空白行

(\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2}\:\d{2})([\s\S]+?)\n\n
您想要的行在第2组中,日期/时间在第1组中。

如何:

(\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2}\:\d{2})([\s\S]+?)\n\n
^[\s\S]*?(?=\n{2,}|$)
您想要的行在组2中,日期/时间在组1中

^[\s\S]*?(?=\n{2,}|$)
试试这个。看演示

试试这个。看演示



我不会用正则表达式来做这个。您使用的是什么语言?我在nxlog中使用此语言作为条件。我实际上是这样做的:正则表达式:
/^(\d{4}-\d{2}-\d{2}\:\d{2}:\d{2})([^\n]*)/s
第一组是捕获时间戳,f如果您的正则表达式支持查找,则:< d { } \{d } 2 } -d {{ 2 } \d { 2 }:\d{2 }:\d{2 }([\s\s] *)(<=\n\n$)<否则> <代码> ^(\d{4 }\d{2 } -d{2 }\d{2 }\:\d{2 }\:\d{2 })然后在第二组中,我想在时间戳之后获得所有字符,包括后行的所有字符直到空白行。(\s\s\s\s\s[s\s\s\s\s\s\s[s\s\s\s\s\s\s[s\s\s\s\s[s\s\s\s[s\s\s\s\s\s[s\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n5 5 5我试过你的<5我试过你的<5我试过你的<5我试过你的<5我的<5号代码<代码>^(<0 0 0 0 0 0 0 0 0 0 0 0({{{{码>^(({{{4{{4{{{4{4{4{{{{4{4}{{{{4}{4}4}{4}{4{4{4}{4}-\0 0 0 0 0 0 0 0 s]*?)(\n\n |$)但在我的json文件中,我看到它捕获了所有内容,这是输出:
“消息日志\r\n消息日志\r\n消息日志\rn\rnYYYY MM DD HH:II:SS消息日志”
@MVF尝试将
\n\n
部分替换为
\r?\n\r?\n
我不会使用regex。您使用的是什么语言?我使用它作为nxlog的一个条件。以下是我实际正在做的:regex:
/^(\d{4}-\d{2}\d:{{ 2 }:(\\n**)/s第一组是捕获时间戳,然后在第二组中,我想在时间戳之后获得所有字符,包括后行的所有字符直到空白行。@ MVF如果您的正则表达式支持LoopKARTES,则尝试:<代码> ^(\ {{ 4 } \d{ 2 } -d{2 }\d{2 }\:\d{2 }\:\d{2 }([s\s])。*(5)除上述两名名名((????\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{{4}{2}2}2}\3\3}2}\3}3\n\3\n\3\n\3\n\n}:::::::::::::\n\n\n\\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\\n\n |$)
^(\d{4}-\d{2}-\d{2}-\d{2}:\d{2}:\d{2})([\s\s]*?)(\n\n |$)
但在我的json文件中,我看到它捕获了所有信息,这是输出:
“消息日志\r\n消息日志\r\n消息日志\r\nyyyyy MM DD HH:II:SS消息日志”
@MVF尝试将
\n\n
部分替换为
\r?\n\r?\n
以下是我实际要做的:
^(\d{4}-\d{2}-\d:{2}-\d}{([^\n]*)第一组是捕获时间戳,然后在第二组中,我想在时间戳之后获取所有字符,包括后行的所有字符,直到空白行。@ JONYN5真的?欢迎您……在您的行程中保持<代码>浦那<代码>……您怎么知道柴?:PI爱好钗。在Darjee。ling几年前就已经喝了几杯了:@Jonny5 Ohh!!!!!太酷了!!!!!!!!!chai+香烟…这对我们来说是例行公事……就像喝水一样:这就是我真正想做的:
/^(\d{4}-\d{2}-\d{2}-\d{2}:\d{2}-\d{3})([\n]*)第一组是捕获时间戳,然后在第二组中,我想在时间戳之后获取所有字符,包括后行的所有字符,直到空白行。@ JONYN5真的?欢迎您……在您的行程中保持<代码>浦那<代码>……您怎么知道柴?:PI爱好钗。在Darjee。ling几年前就已经喝了几杯了:@Jonny5 Ohh!!!!!太酷了!!!!!!!!!chai+香烟…这对我们来说是例行公事……就像喝水一样:这就是我真正想做的:
/^(\d{4}-\d{2}-\d{2}-\d{2}:\d{2}-\d{3})([\n]*)第一组是捕获时间戳,然后在第二组中,我想在时间戳之后获得所有字符,包括后行的所有字符,直到空白行。@强尼抱歉,应该是代码> /^(\{{}} } 4 {\d{ 2 } -d { 2 } \d{2 }:\d{2 }\:\d{2 })([^ \n] *)/s>代码>您是否错过了<代码> >
第1组?@MVF:是的,很抱歉我键入了一个
而不是
@MVF:什么不起作用?你使用的是什么语言或编辑器?可能是你必须用
\R\R
替换
\R\R\R
。以下是我实际想做的:
/^(\d{4}-\d{2}-\d{2}-\d}-\d}-\d{2}-\d}-\d}-\d}第一组是捕获时间戳,然后在第二组中,我想在时间戳之后获得所有字符,包括后行的所有字符直到空白行。@强尼抱歉,应该是<代码> /^(\ {{ 4 } -d { 2 } -d { 2 }\d{2 }\:\d{2 }\:\d{2 }([^ \n] *)/s
您是否错过了第1组的
?@MVF:是的,很抱歉我键入了
而不是
。@MVF:什么不起作用?您使用的是什么语言或编辑器?您可能必须将
\n\n
替换为
\R\R