このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1323566370/595
#  ●正規表現の使用環境  
#  C# 
#   
#  ●検索か置換か?  
#  置換  
#   
#  ●説明  
#  りんご=20 以外を削除したい 
#   
#  ●対象データ  
#  みかん10 りんご20 バナナ30 
#  いちご40 めろん20 りんご20 
#   
#  ●希望する結果  
#  りんご20 
#  りんご20 
#   
#  よろしくお願いします 
# 
# 

検索文字列(りんご20).

'りんご=20 以外を削除したい'(_文字列,_部分削除された文字列) :-
        findall(_検索文字列,(
                    検索文字列(_検索文字列)),
                _検索文字列ならび),
        検索文字列と改行だけを切り出す(_文字列,_検索文字列ならび,L1),
        ならびを整形する(L1,L2),
        concat_atom(L2,_部分削除された文字列).

検索文字列と改行だけを切り出す(_文字列,_検索文字列ならび,L) :-
        sPLIT(_文字列,['\n'|_検索文字列ならび],L1),
        findall(_検索文字列,(
                    member(_検索文字列,L1),
                    member(_検索文字列,_検索文字列ならび)),
                L).

ならびを整形する([],[]).
ならびを整形する([A],[A]) :-
        \+(A = '\n'),!.
ならびを整形する(['\n'|R1],R2) :-
        ならびを整形する(R1,R2),!.
ならびを整形する([A,'\n'|R1],[A,'\n'|R2]) :-
        ならびを整形する(R1,R2),!.
ならびを整形する([A,B|R1],[A,' '|R2]) :-
        ならびを整形する([B|R1],R2).