このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1276873238/534
#  テキストボックスに 
#  A222BあああA555BえええAおおおB55A454B 
#  と入っていたとします。 
#  この文字列の 
#  AとBとその間の文字を1セットにして、AとBの間の文字に5が入っていたときだけ、AとBを削除する 
#   
#  このようなロジックをつくっていただけないでしょうか? 
# 

'AとBとその間の文字を1セットにして、AとBの間の文字に5が入っていたときだけ、AとBを削除する'(_文字列,_削除された文字列) :-
        atom_chars(_文字列,Chars),
        '間に5を含むAとBを削除する'(Chars,Chars2),
        atom_chars(_削除された文字列,Chars2).

'間に5を含むAとBを削除する'([],[]) :- !.
'間に5を含むAとBを削除する'(['A'|R1],L) :-
        最初に現れるBの間に5が存在する(R1,L0,R2),
        '間に5を含むAとBを削除する'(R2,L2),
        append(L0,L2,L),!.
'間に5を含むAとBを削除する'([_文字|R1],[_文字|R2]) :-
        '間に5を含むAとBを削除する'(R1,R2).

最初に現れるBの間に5が存在する(R1,L0,L2) :-
        append(L0,['B'|L2],R1),!,
        \+(append(_,['A'|_],L0)),
        append(_,['5'|_],L0),!.