このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1323566370/862
#  以下のように検索と置換をしたいのですが 
#  name0 name1 name2が順番が異なる時どのような正規表現をかけばよいでしょうか 
#   
#  <en_Image name0="image.png" name1="カツ丼" name2="ご飯"></en_Image> 
#  <en_Image name0="image.png" name2="ご飯" name1="カツ丼"></en_Image> 
#  <en_Image name2="ご飯" name1="カツ丼" name0="image.png"></en_Image> 
#              ↓ 
#  <en_Image name="カツ丼ご飯image.png"></en_Image> 
#   
#  name0 name1 name2が順番が異なる時,以下のような正規表現では取り出せますん 
#  pattern="<en_Image.*?name0=\"(\\w+?).*?name1=\"(\\w+?).*?name2=\"(\\w+?)">.*?</en_Image>" 
#  replace="<en_Image name==\"$2$3.$1\"></en_Image>" 
#   
# 
# 

'name0 name1 name2が順番が異なる時の検索と置換'(_文字列,_置換文字列) :-
        sPLIT(_文字列,[''],L),
        置換(L,L1),
        atomic_list_concat(L1,_置換された文字列).

置換([],[]) :- !.
置換([A1,B1,' ',A2,B2,' ',A3,C3|R1],['name="カツ丼ご飯image.png"'|R2]) :-
        条件_1([A1,A2,A3]),
        条件_2([B1,B2,B3]),
        置換(R1,R2),!.
置換([A|R1],[A|R2]) :-
        置換(R1,R2).

条件_1([]) :- !.
条件_1([A|R]) :-
        member(A,['name0=','name1=','name2=']),
        条件_1(R).

条件_2([]) :- !.
条件_2([A|R]) :-
        member(A,['image.png','ご飯','カツ丼']),
        条件_2(R).