RegEx匹配标题与多行值

时间:2014-06-07 15:01:07

标签: c# .net regex vb.net

我的电子邮件标题如下:

To: <email@domain.com>
Subject: =?utf-8?B?dGnDqnUgxJHhu4Ega2jDtG5nIHRp4bq/bmcgdmnhu4d0IGhvw6BuIHRv?=
    =?utf-8?B?w6Bu?=
Date: Sat, 7 Jun 2014 21:39:10 +0700

我使用此正则表达式查询来匹配主题标题:

Subject: ([^\r\n]*\r\n  [^\r\n]*)

然而,有些情况下,主题有越来越多的额外线:

Subject: =?utf-8?B?dGnDqnUgxJHhu4Ega2jDtG5nIHRp4bq/bmcgdmnhu4d0IGhvw6BuIHRv?=
    =?utf-8?B?w6Bu4Ega2jDtG5nIHRp4bq/bmcgdmnhu4d0IGhvw6BuIHRv?=
    =?utf-8?B?w6Bu4Ega2jDtG5nIHRp4bq/bmcgdmnhu4d0IGhvw6BuIHRv?=

或者只是一行:

Subject: =?utf-8?B?dGnDqnUgxJHhu4Ega2jDtG5nIHRp4bq/bmcgdmnhu4d0IGhvw6BuIHRv?=

如何编辑查询以匹配所有案例?

2 个答案:

答案 0 :(得分:1)

那将是:

Subject: ((?:[^\r\n]*\r\n)+  [^\r\n]*)

rubular

答案 1 :(得分:0)

如果主题后面总是跟着日期,您也可以尝试这样做:

Online Demo

/Subject: .*(?=Date)/s
  • /s 可以使其与一行或多行配合使用。