0

この正規表現を使用してPOP3ヘッダーを抽出する方法を見つけようとしています

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

配達先: yer@ner.com

グループは、私が避けたい「:」文字も返します。私はこれを解決しようとしていますが、できません。

集合的な知恵が必要です:-)

4

3 に答える 3

2

ご承知のとおり、これはラップされたヘッダーを処理しません。実際、その正規表現はラップされたヘッダーを取得し、それを実際のヘッダーに追加します。特に、ラップされたヘッダーの次の行に「:」がない場合。

Sergej Andrejev の正規表現に基づいて構築すると、これはラップされた行をキャプチャしないように処理します。

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

ただし、最善の方法は、実際にヘッダーを 1 行ずつ読み取り、それに応じて解析することです。これは面倒ですが (実動コードでやらなければならなかったので)、これが最も正確です。

于 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 に答える