正则表达式:从多行获取2个值

时间:2015-11-13 13:24:13

标签: regex

我有一个文字:

Session Information

Specification: msl2_1_rx2_file
Session ID: 2015/11/13-19
Type: Backup
Session Owner: mycompany.com
Status: Completed
Mode: incr
Start Time: 11/13/2015 12:07:33 PM
Queuing: 0:00
Duration: 2:24
GB Written: 596.05
# Media: 2
# Errors: 1
# Warnings: 0

我希望通过正则表达式获取两个值:msl2_1_rx2_file1(错误计数)

但我只知道如何拥有一个值:

/Specification: (.+)/m 

http://www.regexr.com/3c6qn

/# Errors:\ (.+)/

http://www.regexr.com/3c6qq

如何从一个正则表达式中获取这2个值? 谢谢!

3 个答案:

答案 0 :(得分:0)

将其设为全局并测试一个另一个 -

-lILU

要提取值,请获取捕获组1和2.

Example here

此致

答案 1 :(得分:0)

您可以使用轮换和^线头开始锚点

/^(?:Specification:|# Errors:) *(.+)/gm

请参阅regex demo

正则表达式细分:

  • ^ - 行首(/m强制^匹配行的开头)
  • (?:Specification:|# Errors:) - 匹配Specification:# Errors:
  • * - 0个或更多常规空格
  • (.+) - 所有字符一直到行尾

您需要的结果是第2组:

msl2_1_rx2_file
1

答案 2 :(得分:0)

/(Specification: (.+))|(# Errors:\ (.+))/g

http://regexr.com/3c6r6