[英]Regex matching multiple lines multiple times without matching date and time
\s*([^:]+?)\s*:\s*(.*(?:\s*(?!.*:).*)*)\s*
此解决方案匹配日期和时间字符串。
如何修改上述解决方案,使日期和时间包含在描述中:header?
Name: John Doe
Age: 23
Primary Language: English
Description: This is a multiline
description field that I want
to capture Fri, 02 Sep 2022 14:46:45 -0500
Country: Canada
一个选项可能是在冒号前的第一部分排除匹配逗号:
^([^,:\n\r]+):(.*(?:\R(?![^,:\n\r]+:).*)*)
另一种选择可能是断言要匹配的下一行不只包含一个冒号:
^([^:\n\r]+):(.*(?:\R(?![^:\n\r]+:[^:\n\r]*$).*)*)
解释
^
字符串开头([^:\n\r]+)
捕获组 1 ,匹配除:
或换行符以外的 1+ 个字符:
从字面上匹配(
捕获组 2
.*
匹配线的rest(?:
非捕获组
\R
匹配任何 unicode 换行序列(?:[^:\n\r]+:[^:\n\r]*$)
断言该行不包含单次出现的:
.*
匹配整行)*
关闭非捕获组并可选择重复它以匹配所有行)
关闭第 2 组
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.