このディレクトリの索引

#  ABCと続く場合を除くABという文字列をCDに置換したい場合は
#  どのように書いたらよいでしょうか・・・ 

'ABCと続く場合を除くABという文字列をCDに置換'(_文字列,_置換された文字列) :-
        sub_atom(_文字列,S,2,R,'AB'),
        \+(sub_atom(_文字列,S+2,1,_,'C')),
        sub_atom(_文字列,0,S,_,_前文字列),
        sub_atom(_文字列,S+2,R,0,_後文字列),
        concat_atom([_前文字列,'CD',_後文字列],_置換された文字列).
'ABCと続く場合を除くABという文字列をCDに置換'(_文字列,_置換された文字列) :-
        sub_atom(_文字列,S,2,R,'AB'),
        \+(sub_atom(_文字列,S+2,1,_,'C')),
        sub_atom(_文字列,0,S,_,_前文字列),
        sub_atom(_文字列,S+2,R,0,_後文字列),
        'ABCと続く場合を除くABという文字列をCDに置換'(_後文字列,_置換された後文字列),
        concat_atom([_前文字列,'CD',_置換された後文字列],_置換された文字列).
'ABCと続く場合を除くABという文字列をCDに置換'(_文字列,_文字列).


%%%% 参考 検索の例 http://nojiriko.asia/prolog/seikihyogendoujou_30.html %%%%

'ABCと続く場合を除くABという文字列'(_文字列,_前文字列,'AB',_後文字列) :-
        sub_atom(_文字列,S,2,R,'AB'),
        \+(sub_atom(_文字列,S+2,1,_,'C')),
        sub_atom(_文字列,0,S,_,_前文字列),
        sub_atom(_文字列,S+2,R,0,_後文字列).