0

我正在尝试解决如何使用此正则表达式提取 POP3 标头

^(?[a-zA-Z-]+)(?(?=:).+)$

收货人:yer@ner.com

该组还返回我想避免的 ':' 字符。我正在努力解决这个问题,但做不到。

需要集体智慧:-)

4

3 回答 3

2

请注意,这不会处理包装的标头。实际上,该正则表达式将采用一个包装的标头,并将其添加到一个真正的标头中。特别是如果包装的标题在以下行中没有“:”。

在 Sergej Andrejev 的 Regex 的基础上,这个将处理不捕获换行的问题:

^([^:\s+]+):(.*)$

然而,最好的办法是逐行读取标题,并进行相应的解析。这很痛苦(因为我不得不为生产代码这样做),但它是最准确的。

于 2009-04-06T13:51:30.927 回答
1

我会选择类似的东西

/^([^:]+):(.*)$/ 

那么你会有

  • $1 - 标题名称
  • 2 美元 - 价值
于 2009-04-05T12:40:26.720 回答
0

抱歉,复制了错误的代码:
^(\S+):\s((\s\S)*)
它适用于多行。

于 2009-07-07T09:20:25.233 回答