62

From次のように、行を行末まで一致させようとしSubjectています。

....
From: XXXXXX 
Date: Tue, 8 Mar 2011 10:52:42 -0800 
To: XXXXXXX
Subject: XXXXXXX
....

これまでのところ、私は持っています:

/From:.*Date:.*To:.*Subject/m

しかし、それは件名の最後まで一致しません。追加してみまし$たが、効果がありませんでした。

4

5 に答える 5

10

Ruby を使用している場合は、以下を試すことができます。

Regexp.new("some reg", Regexp::MULTILINE)

Rubyを使用していない場合は、この質問をハックすることをお勧めします:

  1. すべての「\n」を SOME_SPECIAL_TOKEN に置き換えます
  2. 正規表現を検索し、他の操作を行います...
  3. 復元: SOME_SPECIAL_TOKEN を「\n」に置き換えます
于 2011-11-10T05:15:29.747 に答える
5

改行を越えて一致させたい場合、最初にすべての改行文字を他の文字 (または文字列) に置き換えて、それ以外の場合はテキストに表示されない可能性があります。たとえば、1 つの文字列変数にすべてのテキストがある場合aString.split("\n").join("|")、文字列内のすべての改行をパイプ文字に置き換えるようなことができます。

また、正規表現で改行文字を一致させる方法に関する以前の質問に対する Alan Moore の回答を参照してください。

于 2011-03-09T00:29:38.390 に答える
4

試す:

/...^Subject:[^\n]*/m

于 2011-03-09T00:30:11.443 に答える
1

次のデータを使用します。

From: XXXXXX
Date: Tue, 8 Mar 2011 10:52:42 -0800
To: XXXXXXX
Subject: XXXXXXX

次の正規表現は魔法を行います:

From:([^\r\n]+)[\r\n]+Date:([^\r\n]+)[\r\n]+To:([^\r\n]+)[\r\n]+Subject:([^\r\n]+)[\r\n]+

ただし、これを 1 つの正規表現で実行しようとしないことをお勧めします。FROM/DATE/TO/SUBJECT のシーケンスが変更されないことが確実でない限り、正規表現 "^(\w+):(.+)$" を 1 行ずつプッシュします ;)

于 2011-03-09T00:32:48.360 に答える