このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1301067486/647
#  <hoge>aaa</hoge> 
#  bbb 
#  <hoge>ccc</hoge> 
#   
#  <hoge></hoge>に囲まれてる文字を大文字に置き換える処理をしてるのですが、 
#  <hoge>(.*)</hoge>で一応できます。 
#  <hoge>(.*)?</hoge>と?をつけてもできるのですが、 
#  どっちが正しいのでしょうか? 
# 
# 

'<hoge></hoge>に囲まれてる文字を大文字に置き換える'(_文字列,_置換された文字列) :-
        sub_atom(_文字列,_,_,_,S1,S2,S3,L1,L2,L3),
        L2 = [<,h,o,g,e,>|R2],
        append(R22,[<,/,h,o,g,e,>],R2),
        findall(B,(
                   member(A,R22),
                   to_upper(A,B)),
                R23),
        concat_atom([<,hoge,>,R23,<,'/hoge',>],S23),
        concat_atom([S1,S23],_置換された部分までの文字列),
        concat_atom([S1,S23,S3],_置換された文字列_1),
        '<hoge></hoge>に囲まれてる文字を大文字に置き換える'(_文字列,_置換された部分までの文字列,S3,_置換された文字列_1,_置換された文字列).

'<hoge></hoge>に囲まれてる文字を大文字に置き換える'(_文字列,_置換された部分までの文字列,_,_置換された文字列,_置換された文字列).
'<hoge></hoge>に囲まれてる文字を大文字に置き換える'(_文字列,_置換された部分までの文字列,_後文字列,_置換された文字列,_置換された文字列) :-
        '<hoge></hoge>に囲まれてる文字を大文字に置き換える'(_後文字列,_置換された文字列_1),
        concat_atom([_置換された部分までの文字列,_置換された文字列_1],_置換された文字列).