このディレクトリの索引
#  出題場所 http://hibari.2ch.net/test/read.cgi/tech/1301067486/144
#  (本文が長すぎるというメッセージが出るので2つに分けています) 
#   
#  ●正規表現の使用環境 
#  ActionScript 3.0  
#   
#  ●検索か置換か? 
#  検索  
#   
#  ●説明 
#  文字列の先頭が「プラス符号かマイナス符号か数字か」と 
#  末尾が「数字か」でBoolean判定を行いたい。 
#   
#  ●対象データ  
#  1.2345  +123.45  -3.1245  青3.1245  3.1245赤 
#   
#  ●希望する結果  
#  1.2345→true  +123.45→true  -3.1245 → true  青3.1245→false  3.1245赤→false 
#   
# 
#  試したコードは下記です。 
#   var patt0 = new RegExp("^(\d|[-]|[+])");//先頭部分の判定 
#   var patt1 = new RegExp("\d$");//末尾 
#   if (patt0.test(str0) == true && patt1.test(str0) == true) { 
#    //trueと出力 
#   } else { 
#    //falseと出力 
#   } 
#   
#  最初と最後の文字のみに注目しているのでフラグ("g"など)は無しにして 
#  いますが、上の記述だと 1.2345 でもfalseが出力されます。 
#   
#  どう変えれば良いでしょうか? 
#  因みに、ActionScriptはJavaScriptと同じECMAスクリプトを起源にしています。 
#  (正規表現も共通点が多いようです) 
#   

数値文字(['0','1','2','3','4','5','6','7','8','9']).

文字列の先頭が「プラス符号かマイナス符号か数字か」と末尾が「数字か」でBoolean判定を行う(_文字列) :-
        数値文字(L),
        sub_atom(_文字列,0,1,_,_先頭),
        sub_atom(_文字列,_,1,0,_末尾),
        append(_,[_先頭|_],['+','-'|L]),
        append(_,[_末尾|_],L).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
数値文字(['0','1','2','3','4','5','6','7','8','9']).

文字列の先頭が「プラス符号かマイナス符号か数字か」と末尾が「数字か」でBoolean判定を行う(_文字列) :-
        atom_chars(_文字列,Chars),
        append([_先頭|_],[_末尾],Chars),
        数値文字(L),
        append(_,[_先頭|_],['+','-'|L]),
        append(_,[_末尾|_],L).