このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1323566370/502
#  正規表現で足し算はできないでしょうか? 
#   
#  PHPのソースなんですが 
#  array( 'start' => 10.000, 'end' => 10.166 ), 
#  array( 'start' => 11.166, 'end' => 11.414 ), 
#  array( 'start' => 12.414, 'end' => 14.559 ), 
#  などと並んでる部分があり、これらの数値全部に1を足したいのですが 
# 
# 


'これらの数値全部に1を足したい'([],[]).
'これらの数値全部に1を足したい'([_行|R1],[_変更された行|R2]) :-
        数値に1を加える(_行,_変更された行),
        'これらの数値全部に1を足したい'(R1,R2).

数値に1を加える(_行,_変更された行) :-
        sub_atom(_行,_,_,_,S1_1,S2_1,S3_1,L1_1,L2_1,L3_1),
        数値に1を加える(S1_1,S2_1,S3_1,L1_1,L2_1,L3_1,_変更部分,S3_1),
        数値に1を加える(S3_1,_残りの変更部分),
        concat_atom([_変更部分,_残りの変更部分],_変更された行),!.
数値に1を加える(_行,_行).

数値に1を加える(S1_1,S2_1,S3_1,L1_1,L2_1,L3_1,_変更された部分,S3_1) :-
        数値部分を取り出す(L1_1,L2_1,L3_1),
        数値に1を加えた文字列(L2_1,_数値文字列),
        concat_([S1_1,_数値文字列],_変更された部分).

数値部分を取り出す(L1_1,L2_1,L3_1) :-
        数値に還元できるならび(L2_1),
        \+((last(L1_1,A),数値(A))),
        \+((L3_1 = [B|_],数値(B))).

数値に1を加えた文字列(L2_1,_数値文字列) :-
        number_chars(_数値,L2_1),
        _数値_2 is _数値 + 1.0,
        number_chars(_数値_2,L2_2),
        atom_chars(_数値文字列,L2_2).

数値に還元できるならび([A|R]) :-
        数字(A),
        last([A|R],B),
        \+(B='.'),
        全てが数字かピリオド(R).

全てが数字かピリオド([]).
全てが数字かピリオド([A|R]) :-
        member(A,['.','0','1','2','3','4','5','6','7','8','9']),
        全てが数字かピリオド(R).