このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1301067486/266
#  ●正規表現の使用環境 
#  PHP 5.2.5 
#   
#  ●検索か置換か? 
#  置換 
#   
#  ●説明 
#  <a>でリンクされていないURLだけをリンクしたい 
#   
#  ●対象データ 
#  <a href='http://ime.nu/aaaaaa/aaa'>http://aaaaaa/aaa</a> 
#  <a href='http://ime.nu/aaaaaa/aaa'>bbb</a> 
#  http://ime.nu/aaaaaa/aaa 
#  http://ime.nu/aaaaaa/aaa 
#   
#  (httpの前に改行は無いです) 
#   
#  ●希望する結果 
#   
#  <a href="http://ime.nu/aaaaaa/aaa">http://ime.nu/aaaaaa/aaa</a> 
#  <a href="http://ime.nu/aaaaaa/aaa">bbb</a> 
#  <a href="http://ime.nu/aaaaaa/aaa">http://ime.nu/aaaaaa/aaa</a> 
#  <a href="http://ime.nu/aaaaaa/aaa">http://ime.nu/aaaaaa/aaa</a> 
#   
#   
#  ↓これではダメでした。。 
#  /((?![\"\'>])(https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)(?![\"\'<]))/ 
#   
'AタグでリンクされていないURLだけをリンクしたい'(_文字列,_置換された文字列) :-
        sub_atom(_文字列,_,_,_,S1,S2,S3,L1,L2,L3),
        L1 = [<,a,>|R1],
        append(R0,[<,/,a,>],R1),
        \+(append(_,[<,a,>|_],R0)),
        \+(append(_,[<,/,a,>|_],R0)),
        'AタグでリンクされていないURLだけをリンクしたい'(S3,_置換された文字列のニ),
        concat_atom([S1,S2,_置換された文字列のニ],_置換された文字列),!.

'AタグでリンクされていないURLだけをリンクしたい'(_文字列,_置換された文字列) :-
        sub_atom(_文字列,_,_,_,S1,S2,S3,L1,L2,L3),
        L1 = [h,t,t,p,:,/,/|R1],
        member(C,R1),
        \+(member(C,[' ',',','\n'])),
        concat_atom([S1,'',S2,'\n'],S4),
        concat_atom([S4,_置換された文字列のニ],_置換された文字列),!.
'AタグでリンクされていないURLだけをリンクしたい'(_文字列,_置換された文字列) :-
        sub_atom(_文字列,_,_,_,S1,S2,S3,L1,L2,L3),
        L1 = [h,t,t,p,:,/,/|R1],
        last(R1,C),
        member(C,[' ',',','\n']),
        concat_atom([S1,'',S2,'\n'],S4),
        'AタグでリンクされていないURLだけをリンクしたい'(S3,_置換された文字列のニ),
        concat_atom([S4,_置換された文字列のニ],_置換された文字列),!.
'AタグでリンクされていないURLだけをリンクしたい'(_文字列,_文字列).