魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

正規表現

魔術師の10年の技術の一つだ。
因みに、「10年の技術」は、10年という期間を含む名称だが、
正確には、残りの人生全て(短いけどね)ということだ。
それを、10年の技術と呼んでいるんだ。実は「英語」も入っているんだ。

さて、さて、正規表現も、10年技術の一つ。
解説はしないが、例を1つだけ。

/^[+-]?[0-9]+[.]?[ 0-9]*$/

[+-]? の[]は文字クラスと言って1文字を表す。
この場合は、+か-かの1文字。で、?は、文字クラスの1文字が、
1個以上続くことを表す。
[0-9]は、1から9までの1文字。+で、数字が1個以上続くという意味。
[.]は文字.があってもなくてもいい。[0-9]*は、数字が0個以上。
^と$は。それぞれ、[+-]が、先頭にある、[0-9]*が、最後にあるを意味する。
つまり、全体としたら、
少数を持つかもしれない、任意の数値を意味する。
例えば、gawkで、gawk -f nump.awk data.txt とし、
/^[+-]?[0-9]+[.]?[ 0-9]*$/ { print$0 }
スクリプトファイルに書けば、
data.txtの全行を調べ、行の中に数字を見つけたら、その行を
画面にプリントすることになる。データが1万行あったとしても、
gawkは、あっという間に終わらせてくれるだろう。
正規表現を使えば、どんな行でも、見つけ出すことができるんだ。
gawkは、Gnuのサイトから無料で手に入り、無料で使う個余も
配布することも許されているということだ。
(ライセンスは読んでいないのでね)
魔術医師のawkは、gawk 4.0.4 というものだ。