このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1268979408/760
#  ●正規表現の使用環境 
#  C# 
#   
#  ●検索か置換か? 
#  検索 
#   
#  ●説明 
#  =の連続がある行で挟まれた部分を抽出したい 
#   
#  ●対象データ 
#  ゲスト======================== 
#  ほげほげ 
#  ほげほげほげ 
#  プロフィール=================== 
#  はげ 
#  はげはげ 
#  ============================= 
#   
#  ●希望する結果 
#  "ほげほげ\nほげほげほげ" 
#  "はげ\nはげはげ" 
#   
#  結果に=の行が含まれていても構いません 
#  =は2つ以上連続している行が対象です 
#   
#  ^.*={2,}$(?'block'.+?)^.*={2,}$ とやってみましたがマッチしませんでした 
#  MultiLineオプションは指定しています 
#  それと対象文字列から\rは事前に除去しています 
#   
#  よろしくお願いします 
# 
# 

'=の連続がある行を区切りとして検索する'([],[]) :- !.
'=の連続がある行を区切りとして検索する'([Line|R1],[S|R2]) :-
        sub_atom(Line,_,2,_,'=='),
        '=の連続がある行が来るまで検索する'(R1,L1,R11),
        concat_atom(L1,'\n',S),
        '=の連続がある行を区切りとして検索する'(R11,R2).
'=の連続がある行を区切りとして検索する'([_|R1],R2) :-
        '=の連続がある行を区切りとして検索する'(R1,R2).

'=の連続がある行が来るまで検索する'([Line|R1],[],[Line|R1]) :-
        sub_atom(Line,_,2,_,'=='),!.
'=の連続がある行が来るまで検索する'([Line|R1],[Line|R2],R3) :-
        '=の連続がある行が来るまで検索する'(R1,R2,R3).