このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1268979408/974
#  ●正規表現の使用環境 
#  linux コマンドラインの grep 
#   
#  ●検索か置換か? 
#  検索 
#   
#  ●説明 
#  末尾が一致していて途中が違う文字列のうち、特定のパターンを除去した集合を取得したい 
#   
#  ●対象データ 
#  aaabbbcccあああいいい 
#  aaabbbcccううういいい 
#  aaabbbcccえええいいい 
#   
#  ●希望する結果 
#  aaabbbcccううういいい 
#  aaabbbcccえええいいい 
#   
#  「説明」がうまく書けないのですが。 
#  よろしくお願いします 
# 
# 

末尾が一致していて途中が違う文字列のうち、特定のパターンを除去した集合を取得したい(_文字列ならび,_対象文字列,_特定のパターン,_末尾部分,_特定パターンを除去した文字列ならび) :-
        findall(_文字列,(
                    sub_atom(_文字列,S,_,0,_末尾部分),
                    sub_atom(_文字列,0,S,_,_対象文字列),
                    \+(call(_特定パターン))),
                _特定パターンを除去した文字列ならび).


%
%  _特定パターン述語の引数に必ず_対象文字列を持つこと
% 例えば、

削除パターン(_対象文字列) :-
        sub_atom(_対象文字列,_,_,_,あああ).

?- _対象データ = [aaabbbcccあああいいい,aaabbbcccううういいい,aaabbbcccえええいいい],
    末尾が一致していて途中が違う文字列のうち、特定のパターンを除去した集合を取得したい(_対象データ,_対象文字列,削除パターン(_対象文字列),いいい,_特定パターンを除去した文字列ならび).

_特定パターンを除去した文字列ならび = [aaabbbcccううういいい,aaabbbcccえええいいい].