From
次のように、行を行末まで一致させようとしSubject
ています。
....
From: XXXXXX
Date: Tue, 8 Mar 2011 10:52:42 -0800
To: XXXXXXX
Subject: XXXXXXX
....
これまでのところ、私は持っています:
/From:.*Date:.*To:.*Subject/m
しかし、それは件名の最後まで一致しません。追加してみまし$
たが、効果がありませんでした。
Ruby を使用している場合は、以下を試すことができます。
Regexp.new("some reg", Regexp::MULTILINE)
Rubyを使用していない場合は、この質問をハックすることをお勧めします:
改行を越えて一致させたい場合、最初にすべての改行文字を他の文字 (または文字列) に置き換えて、それ以外の場合はテキストに表示されない可能性があります。たとえば、1 つの文字列変数にすべてのテキストがある場合aString.split("\n").join("|")
、文字列内のすべての改行をパイプ文字に置き換えるようなことができます。
また、正規表現で改行文字を一致させる方法に関する以前の質問に対する Alan Moore の回答を参照してください。
試す:
/...^Subject:[^\n]*/m
次のデータを使用します。
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 行ずつプッシュします ;)