ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

正規表現でのチェック方法を考える-その3 小数

2008-04-08 18:43:57 | 正規表現

 チェックは、正規表現でやれば、いろんな言語でいけそうなので、正規表現で、いろんな値をチェックする方法を考える、シリーズ「正規表現でのチェック方法を考える」
 前回までで、整数は片付いたので(カンマ付きについては、あとになります)、今回は、小数について考えてみたいと思います。

 なお、このシリーズにおいて、説明文中の¥は、断りがなければ、半角の円マーク(ないしは、バックスラッシュ)に変えてください(入力が面倒なので全角にしています)




■小数について

 小数について考える場合、小数点の前と小数点のあとについて、分けて考えます。
 なお、小数点がないのは、いままでやってきた、整数になります。

 小数点のまえは、いままでどおり、01とかいけないので、それを除いた、

 (0|-?[1-9]¥d*)

 となります。。。と、言いたいところですが、
-0.1
 はありえますので、今回は、0にも符号がつきます。
 そこで、
 
  -?(0|[1-9]¥d*)

 一方、小数点の後は、12.などと、小数点があって、数字がないのはふつう認められないので、
 かならず1個以上は数字が来ることとします。
 ただし、12.0とか、12.010のように、最後が0で終わることはあるので
(12.01を切り捨てた場合、12.0とかき、12としないことも多い。有効範囲を明示したいため)
 ¥d+
 とします。

 結果として

 -?(0|[1-9]¥d*)¥.¥d+

となります(.だけだと、任意の1文字になってしまうので、¥.)。今までの整数とまとめると、
/^(¥¥|¥$)?(0|-?[1-9]¥d*|-?(0|[1-9]¥d*)¥.¥d+)$/
なかんじ。。赤字が、今回の追加部分。




■ソース

いままでの整数とあわせて、こんなかんじ。
<HTML>
<HEAD>
<TITLE>JavaScriptテスト広場</TITLE>
<SCRIPT LANGUAGE="JavaScript"> 
<!--
function load()
{
}

function mycheck(val)
{
	if (val.search(/^(¥¥|¥$)?(0|-?[1-9]¥d*|-?(0|[1-9]¥d*)¥.¥d+)$/)	!=	-1 )
	{
	}
	else
	{
		alert("エラー");
	}
}
-->
</SCRIPT>

</HEAD>
<BODY onload="load()">
<FORM NAME="buf">
<INPUT NAME="Text1" TYPE="hidden">
</FORM>

<FORM NAME="zikko">
<INPUT NAME="text1" TYPE="TEXT">
<INPUT NAME="button1" TYPE="BUTTON" VALUE="実行" onclick=mycheck(text1.value)>
</FORM>
</BODY>
</HTML>





今回はここまで。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Windows Server 2008、店頭販売は4月16日から(仮想化はベータ版)

2008-04-08 15:46:16 | Weblog

ここのニュース
Windows Server 2008、店頭販売は4月16日から
http://itpro.nikkeibp.co.jp/article/NEWS/20080408/298293/

によると(以下斜体は上記サイトより引用)


 マイクロソフトは2008年4月8日、サーバーOSの新版「Windows Server 2008」のパッケージ版を4月16日に発売すると発表した。前日の15日には日本での製品発表会を催し企業向けの営業活動を本格化する。それに併せて店頭でも販売を開始する。


だそうなんだけど、あの仮想化、Windows Server Virtualization、正式名「Hyper-V」に関しては

EnterpriseとStandardは、仮想化ソフト「Hyper-V」のベータ版を含んでいる。Hyper-Vの製品版は8月に提供予定。

とのこと

お値段は

各パッケージの参考価格(税込み)は、Windows Server 2008 Standard(5CAL付き)が18万8000円、Windows Server 2008 Enterprise(25CAL付き)が72万円、Windows Web Server 2008が8万5800円。


で、諸物価同様

いずれも現行のWindows Server 2003より若干値上がりしている。

だそうな。

以上、ほうこくおわり!


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Ruby1.9、Windowsで-その4 配列、連想配列

2008-04-08 12:00:57 | Ruby

 シリーズ「Ruby1.9、Windowsで」です。

 前回、「数値の処理」に行きました。ってことは、今回は、「文字の処理」なんですが。。
 しまった(>_<!)それって、String「クラス」を説明しないといけないジャン・・
 だけど、クラスは、「2-2-2-2.違う種類」なので、まだ説明できない・・

 ということで、予定変更!で、「2-2-2.複数変数の表し方」をやることにして、
 今回は、その中の「2-2-2-1.同じ種類(=配列)」をやります。

 お勉強資料に、
オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル 
http://www.ruby-lang.org/ja/man/html/index.html

を使います。




■配列

変数=[値1,値2,・・・,値n]

みたいなかんじで、代入、初期化できます。
例:
a=[1,2,3,4,5]

で、0番目から始まります。

puts a[0]

とすると、上記の場合、

1

と表示されます。

上記のような初期設定をしないで、
いきなり、
b[4]=5
とやってはいけません。エラーがでます。

じゃあ、領域だけとりたい場合は?

b= Array.new(5)

のように、Array.new(とりたいサイズ)
とします。
このあとに

b[4]=5

は、うまくいきます。




■型は、おなじでなくても、うまくいく。

a=[1,2,3,4,5]

と書いた・・型はつけてない・・・ってことは、
違う型を混在させてもOKです。

c=[1,"abc",3,4,5]

puts c[0]
puts c[1]

とやると、
1
abc
と表示されます。




■連想配列

 でも、c[0]とかc[1]のように数字だけだと、写像を表現するときに面倒です。
 英語と日本語の日付の対応を考えた場合、
  h["Sun"]で、"日"
  h["Mon"]で、"月"
    :
 のように、配列に入れて欲しいです。

 それは、連想配列(Javaの場合ハッシュマップ)を使いますが、Rubyの場合

 h={"Sun"=>"日,"Mon"=>"月"}

 (上記>は、本当は半角)

 のようにします。つまり、中カッコでくくって、=>

 そうすると
puts h["Sun"]
 で"日"と表示します。

 領域だけとりたい場合は、

 map=Hash.new()

 のようにします。このあとで、

map["日"]="Sun"
map["月"]="Mon"

 と設定し、

puts map["日"]

 とすれば、

Sun

 と表示されます。




■変数を値に設定した場合

 ハッシュマップはもちろん、配列も、値だけでなく、変数を設定できるわけです。
 このとき、変数のポインタでなく、値そのものを設定するようです。

 つまり、

p1=1
p2=2
p3=3
 として
p=[0,p1,p2,p3]
 と設定します。

このあと、p1=4
 として、

puts p[1]

 とした場合、p1の値を聞いていますので、
   配列にしたとき、ポインタを入れていれば、4
   配列にしたとき、値を入れていれば、1
 になりますが、結果は
1
 になります。

ここで、

map["p2"]=p2
map["p3"]=p3

としたあと、

p3=100

と値を変えて

puts map["p3"]

を表示させても、

3

と表示されます。




今回はここまで。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする