このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1323566370/197
#  ●正規表現の使用環境 
#  秀丸エディタ 
#  ●検索か置換か? 
#  置換 
#  ●説明 
#  <div class="main">の場合に限り、両端のdivをspanに置換したい。 
#  ※<div class="main">から</div>までの行数は、3行だったり5行だったりと色々変わります。 
#  ●対象データ 
#  <div class="main">あああああ<br>  
#  いいいいい<br> 
#  ううううう<br> 
#  えええええ<br> 
#  おおおおお<br> 
#  </div> 
#   
#  ●希望する結果 
#  <span class="main">あああああ<br>  
#  いいいいい<br> 
#  ううううう<br> 
#  えええええ<br> 
#  おおおおお<br> 
#  </span> 
#   
#   
#  下の正規表現を作ってみたのですが検索でマッチしません。 
#  どなたか助言頂けるとうれしいです。 
#  よろしくお願いいたします。 
#   
#  置換元 
#  <div class="main">(.*\n*)</div> 
#  置換先 
#  <span class="main">\1</span> 
# 

'div class="main" タグが現れたら端のdiv,/divをspan,/spanに置換する'(_文字列,_置換された文字列) :-
        mainからspanへの置換(_文字列,_前文字列,_置換されたdiv部,_後文字列,_置換された文字列),
        'div class="main" タグが現れたら端のdiv,/divをspan,/spanに置換する'(_文字列,_前文字列,_置換されたdiv部,_後文字列,_置換された文字列).
'div class="main" タグが現れたら端のdiv,/divをspan,/spanに置換する'(_文字列,_文字列).

'div class="main" タグが現れたら端のdiv,/divをspan,/spanに置換数'(_文字列,_前文字列,_置換されたdiv部,_後文字列,_置換された文字列) :-
        concat_atom([_前文字列,_置換されたdiv部,_後文字列],_置換された文字列).
'div class="main" タグが現れたら端のdiv,/divをspan,/spanに置換数'(_文字列,_前文字列,_置換されたdiv部,_後文字列,_置換された文字列) :-
        'div class="main" タグが現れたら端のdiv,/divをspan,/spanに置換する'(_後文字列,_置換された後文字列),
        concat_atom([_前文字列,_置換されたdiv部,_置換された後文字列],_置換された文字列).

mainからspanへの置換(_文字列,_前文字列,_置換された文字列,_後文字列) :-
        sub_atom(_文字列,_,_,_,_前文字列,_適合文字列,_後文字列,L1,[<,d,i,v,' ',c,l,a,s,s,=,'"',m,a,i,n,'"',>|R2],L3),
        append(L2_2,[<,/,d,i,v,>],R2),
        append([<,s,p,a,n,' ',c,l,a,s,s,=,'"',m,a,i,n,'"',>|L2_2],[<,/,s,p,a,n,>],L2_3),
        concat_atom(L2_3,_置換された文字列),!.