简体   繁体   English

RegEx匹配具有多行值的标头

[英]RegEx match header with multi-line value

I have the email header below : 我的电子邮件标题如下:

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

I using this regex query to match the subject header : 我使用此正则表达式查询来匹配主题标头:

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

However some case the subject have more and more extra line: 但是在某些情况下,主题有越来越多的额外行:

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

Or just one line: 或仅一行:

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

How can i edit the query to match all case ? 如何修改查询以匹配所有大小写?

That would be: 那将是:

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

rubular rubular

If Subject is always followed by Date you could try this as well: 如果“ 主题”后面总是跟着“ 日期”,您也可以尝试以下操作:

Online Demo 在线演示

/Subject: .*(?=Date)/s
  • /s will make it work with one or multiple lines. /s将使其使用一行或多行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM