このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1340383120/102
#  正規表現での置き換え文字列をランダム化する方法はありませんか? 
#   
#  例 
#  検索文字列 半角スペースで挟まれたアルファベット4文字 
#  ( )(\w{1})(\w{1})(\w{1})(\w{1})( ) 
#  置き換え結果 以下から ランダムでどれかを出力 
#  \1●●\3\4\5 
#  \1●\2●\4\5 
#  \1●\2\3●\5 
#  \1\2●●\4\5 
#  \1\2●\3●\5 
#  \1\2\3●●\5 
#  分かる方いましたらお願いします。 
#  サクラエディタつかってますが 
#   

半角スペースで挟まれたアルファベット4文字ランダムに置換候補文字列に置き換える(_文字列,A,B,C,D,E,F,_置換された文字列) :-
        sub_atom(_文字列,_,_,_,S1,S2,S3,L1,[' '|R2],L3),
        append(L1_1,[' '],R2),
        \+(member(' ',L1_1)),
        ランダムに置換候補文字列を得る(A,B,C,D,E,F,_置換候補文字列),
        半角スペースで挟まれたアルファベット4文字ランダムに置換候補文字列に置き換える(S3,A,B,C,D,E,F,_置換された文字列_2),
        atomic_list_concat([S1,' ',_置換候補文字列,' ',_置換された文字列_2],_置換された文字列),!.
半角スペースで挟まれたアルファベット4文字ランダムに置換候補文字列に置き換える(_文字列,A,B,C,D,E,F,_文字列).

ランダムに置換候補文字列を得る(A,B,C,D,E,F,_置換候補文字列) :-
        R is random(6) + 1,
        置換候補文字列(R,A,B,C,D,E,F,_置換候補文字列).

置換候補文字列(1,A,B,C,D,E,_文字列) :-
        atomic_list_concat([A,●●,C,D,E],__文字列),!.
置換候補文字列(2,A,B,C,D,E,_文字列) :-
        atomic_list_concat([A,●,B,●,D,E],__文字列),!.
置換候補文字列(3,A,B,C,D,E,_文字列) :-
        atomic_list_concat([A,B,●,C,●,E],__文字列),!.
置換候補文字列(4,A,B,C,D,E,_文字列) :-
        atomic_list_concat([A,B,●●,D,E],__文字列),!.
置換候補文字列(5,A,B,C,D,E,_文字列) :-
        atomic_list_concat([A,●,C,D,●,E],__文字列),!.
置換候補文字列(6,A,B,C,D,E,_文字列) :-
        atomic_list_concat([A,B,C,●●,E],__文字列),!.