【发布时间】:2017-07-28 15:44:37
【问题描述】:
我正在尝试读取日志文件以检查报告是否已成功发送给用户,但我在使用 Powershell 正则表达式来搜索具有多行的内容时遇到了一些问题。
---sample.txt
28/07/17 11:06.31: MailOut: To=test1@mail.com; Subject=PB Outstanding Training;
28/07/17 11:07.05: MailOut: To=test1@mail.com, test2@mail.com,
test3@mail.com; From=mc@mail.com; Subject=NED Pending Training;
28/07/17 11:08.51: MailOut: To=test1@mail.com,
test2@mail.com, test3@mail.com, test4@mail.com, test5@mail.com,
test6@mail.com; From=mc@mail.com; Subject=PIR Number Sequencing;
在上面的示例中,我能够匹配所需的文本,因为它位于同一行,但如果该行被分成两个或多个,那么我遇到了困难。
---这是我的powershell脚本
$mailLogFile = Get-Content 'mail.log'
$mailLogFile -match "(28)/(07)/(\d+)(\s+)(\d+):(\d+)\.(\d+):(\s+)(.+)PB Outstanding Training"
上述脚本适用于“sample.txt”的第一行。如果我将搜索字符串“PB 杰出培训”替换为“NED 待定培训”,它对我不起作用。
我尝试在搜索字符串之前附加这些字符
(.\n)+(.\r+)(.\s+)(.t+) 但也没用。
感谢任何帮助。不知道我在这里缺少什么
【问题讨论】:
标签: regex powershell