このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/php/1168450843/401
#  PHP5で使います 
#   
#  $numには、 
#   
#  +数字 
#  -数字 
#  数字 
#   
#  というようなパターンの時のみマッチさせたいです 
#  数字のところは 0〜999999999までの値が入ってきますが、0以外の時に頭に0がある場合0123とかは除外したいです 
#  試行錯誤して下記のようにしてみましたが、思った結果が得られません。エラー出まくりでなみだ目です 
#  どうかよろしくお願いします 
#   
#   
#  preg_match('/^(([^+]*)*(++[^-][^+]*)*)*?[^0-9]*$/',$num) 
# 

'+数字 -数字 数字 というようなパターンの時のみマッチさせたいです。数字のところは 0〜999999999までの値が入ってきますが、0以外の時に頭に0がある場合0123とかは除外したいです'(_文字列,_前文字列,_適合文字列,_後文字列) :-
        sub_atom(_文字列,_,_,_,_文字列,_前文字列,_適合文字列,_後文字列,L1,L2,L3),
        適合診断(L2),
        \+((append(_,[A],L1),数字(A))),
        \+((L3 = [B|_],数字(B))).

適合診断([+|R]) :- すべて数字(R),!.
適合診断([-|R]) :- すべて数字(R),!.
適合診断([A|R]) :-
        A @>= '1',
        A @=< '9',
        すべて数字(R),!.

すべて数字([]) :- !.
すべて数字([A|R]) :-
        A @>= '0',
        A @=< '9',
        すべて数字(R).