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

'りんご=20 以外を削除したい'(_文字列,_部分削除された文字列) :-
        sPLIT(_文字列,[' ','\n'],L),
        findall(A,(
                    member(A,L),
                    置換(A)),
                L1),
        部分削除文字列に変換(L1,_部分削除された文字列).

置換('りんご20').
置換('\n').

部分削除文字列に変換(L1,_部分削除された文字列) :-
        ならびを整形する(L1,L2),
        concat_atom(L2,_部分削除された文字列).

ならびを整形する([],[]).
ならびを整形する([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).