Регулярное выражение для извлечения заголовков POP3 - PullRequest
0 голосов
/ 05 апреля 2009

Я пытаюсь понять, как извлечь заголовки POP3 с помощью этого регулярного выражения

^ ([A-Za-Z -] +?) ((=:?). +) $

Доставлено: yer@ner.com

Группа также возвращает символ ':', которого я хочу избежать. Я пытаюсь решить это, но не могу.

Нужна коллективная мудрость: -)

Ответы [ 3 ]

2 голосов
/ 06 апреля 2009

Просто, чтобы вы знали, это не будет обрабатывать упакованные заголовки. Фактически, это регулярное выражение возьмет завернутый заголовок и добавит его к реальному заголовку. Особенно, если в следующих строках заголовок без переноса не имеет ":".

Опираясь на регулярное выражение Сергея Андреева, этот будет обрабатывать не захватывая завернутые строки:

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

Однако, лучшее, что нужно сделать, это на самом деле читать заголовки построчно и анализировать соответственно. Это боль (как я должен был сделать для производственного кода), но это наиболее точно.

1 голос
/ 05 апреля 2009

Я бы пошел с чем-то вроде

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

Тогда у вас будет

  • $ 1 - заголовок
  • $ 2 - значение
0 голосов
/ 07 июля 2009

Извините, скопировал неправильный код:
^ (\ S +): \ S ((\ S \ S) *)
Работает с несколькими строками.

...