如何将可变行字符串(例如日志中的字符串)与特定条件匹配?

how to match a variable lines string such as in log with a specific criteria?

示例:我想将错误块与以处理开始并以错误保存数据结束的行匹配。我 运行 遇到的问题是贪婪或惰性匹配,正则表达式也匹配以前的值!

处理员工 123 1504 of 2056
2016-12-09-15.14.57.000000 :创建了员工 123。

处理员工 234 1505 of 2056
2016-12-09-15.14.57.000000:创建了员工 234。

处理员工 345 1506 of 2056
有效的邮政编码范围在 01000 和 99999 之间。
保存数据时出错。

处理员工 445 1507 of 2056
2016-12-09-15.14.58.000000:创建了员工 445。

处理员工 775 1509 of 2056
警告 123
警告 123
错误 123
保存数据时出错。

使用从 "Processing employee" 开始并以 "Error saving data" 结束的全局匹配,但要确保匹配的字符串中没有两个换行符:

(Processing employee)(\n[^\n]|[^\n])*\n(Error saving data\.)

您可以在 https://regex101.com/r/aCJ2Wv/1

查看正则表达式