このディレクトリの索引
#  出典: Regular Expression(正規表現) Part12 #468
#  
#  ●Regular Expressionの使用環境
#  sed、grep
#  ●検索か置換か?
#  置換
#  ●説明
#  マッチした結果をそのまま置き換えるでなく、
#  1つ前に改行を入れたい。
#  
#  ●対象データ
#  0ABC1DEF2GHI3JKL4MNO
#  
#  ●希望する結果
#  0ABC
#  1DEF
#  2GHI
#  3JKL
#  4MNO
#  
#  よろしくお願いします。 


置換規則('0','0').
置換規則('1','1').
置換規則('2','2').
置換規則('3','3').
置換規則('4','4').
置換規則('5','5').
置換規則('6','6').
置換規則('7','7').
置換規則('8','8').
置換規則('9','9').


'マッチした結果をそのまま置き換えるでなく、1つ前に改行を入れたい。'(_文字列,_置換された文字列) :-
検索文字列を置換する(_文字列,_前文字列,_置換文字列,_後文字列),
後文字列も置換して置換された文字列を生成する(_前文字列,_置換文字列,_後文字列,_置換された文字列),!.
'マッチした結果をそのまま置き換えるでなく、1つ前に改行を入れたい。'(_文字列,_文字列).


後文字列も置換して置換された文字列を生成する(_前文字列,_置換文字列,_後文字列,_置換された文字列) :-
'マッチした結果をそのまま置き換えるでなく、1つ前に改行を入れたい。'(_後文字列,_置換された文字列_2),
atomic_list_concat([_前文字列,'\n',_置換文字列,_置換された文字列_2],_置換された文字列).


検索文字列を置換する(_文字列,_前文字列,_置換文字列_1,_後文字列) :-
検索文字列を得る(_文字列,_前文字列,_検索文字列,_後文字列),
置換規則(_検索文字列,_置換文字列_1).


検索文字列を得る(_文字列,_前文字列,_検索文字列,_後文字列) :-
sub_atom(_文字列,S,Len,R,_検索文字列),
sub_atom(_文字列,0,S,_,_前文字列),
sub_atom(_文字列,_,R,0,_後文字列).