我试着把From
行一直匹配到Subject
行的末尾,如下所示:
....
From: XXXXXX
Date: Tue, 8 Mar 2011 10:52:42 -0800
To: XXXXXXX
Subject: XXXXXXX
....
到目前为止,我已经:
/From:.*Date:.*To:.*Subject/m
但这与主题行的结尾不符.我试着加$
,但没有效果.
我试着把From
行一直匹配到Subject
行的末尾,如下所示:
....
From: XXXXXX
Date: Tue, 8 Mar 2011 10:52:42 -0800
To: XXXXXXX
Subject: XXXXXXX
....
到目前为止,我已经:
/From:.*Date:.*To:.*Subject/m
但这与主题行的结尾不符.我试着加$
,但没有效果.
可以使用/m
修改器启用多行模式(即允许.
匹配换行符),也可以使用?
执行非贪婪匹配:
message = <<-MSG
Random Line 1
Random Line 2
From: person@example.com
Date: 01-01-2011
To: friend@example.com
Subject: This is the subject line
Random Line 3
Random Line 4
MSG
message.match(/(From:.*Subject.*?)\n/m)[1]
=> "From: person@example.com\nDate: 01-01-2011\nTo: friend@example.com\nSubject: This is the subject line"
请参阅http://ruby-doc.org/core/Regexp.html并搜索"多行模式"和"默认贪婪".