ここでは当社(多摩ソフトウエア有限会社)の製品に入力できる「式」の概略について説明します。
たとえば、次のような式を記述できます。
| 式の例 | 意味 |
|---|---|
| 3 | 数字の 3 |
| 3+4 | 7 になる |
| 3*4 | 12 になる |
| 3.14 | 小数 |
| true | 論理値「真」 |
| "abc" | 文字列「abc」 |
| "abc"+"de" | 文字列「abcde」 |
| "abc".size | 文字列の長さ 3 |
| "abc" =~ /b/ | 「abc」に正規表現 b が一致するか → true |
次の型があります。
| 型 | 定数例 | メンバ |
|---|---|---|
| 整数 | 0 1 2 -3 12 | to_s |
| 小数 | 0.0 3.14 -10.7 | to_s to_i |
| 文字列 | "" "123" "あいうえお" /123/ | size to_i |
| 論理 | true false | to_s to_i |
| 配列 | 1,2,3 "a","b" 4,5,"abc",7 | size last to_s |
| 検索結果 | "abc" =~ /b/ | count hits hitss |
| nil | nil |
"..." では、エスケープ表記を使用します。
/.../ では、その中に「/」を書くときは「\/」とエスケープする必要がありますが、他のエスケープ文字はありません。/.../ は正規表現を記述するときに便利です。
たとえば、"\\(abc\\)" と /\(abc\)/ は、どちらも「\(abc\)」という文字列を表現します。
※注意: この文書では円記号(\)がバックスラッシュ(\)で表示される場合がありますが、この 2 つは同じものです。
数値などの普通の型にもメンバがあります。たとえば 2.to_s は文字列 "2" に評価されます。メンバの一覧を次に示します。
| メンバ | このメンバを持つ型 | 意味 |
|---|---|---|
| to_s | 整数 小数 論理 配列 | 文字列に変換する |
| to_i | 小数 文字列 論理 | 整数に変換する |
| size | 配列 文字列 | 配列の要素数または文字列の長さ |
| last | 配列 | 最後の要素 |
| count | 検索結果 | 検索ヒット数 |
| hits | 検索結果 | 正規表現の ( ) にヒットした文字列 (最初のヒットのみ) |
| hitss | 検索結果 | 正規表現の ( ) にヒットした文字列 (全ヒット) |
以下はいくつかのメンバの詳細な説明です。
| メンバ | 意味 |
|---|---|
| <論理>.to_i | 真は 1、偽は 0 になる。 |
| <小数>.to_i | 小数点以下は切り捨て。 |
| <文字列>.to_i | 文字列を 10 進数として評価。全角数字も可。文字列中のカンマ (,) は無視される。 |
| <配列>.to_s | 配列の各要素に to_s を適用した結果をカンマ (,) で区切って並べた文字列。 |
| <検索結果>.hits | 正規表現の ( ) の部分に最初に一致した実際の文字列から得られた配列。最初の ( ) に一致した文字列が hits[0] に入り、2 番目の ( ) に一致した文字列が hits[1] に入る。以下同様。ヒットが 1 つもない場合、および正規表現に ( ) が含まれていない場合は、空の配列になる。
たとえば text が A1B2C3 のとき、(text =~ /([A-C])([1-3])/).hits は配列 A,1 になる。 |
| <検索結果>.hitss | .hits と似ているが、.hitss の各要素は配列になっており、その最初の要素には最初のヒットの内容、次の要素には 2 番目のヒットの内容が入る。以下同様。ヒットが 1 つもない場合は空の配列になる。正規表現に ( ) が含まれていない場合は空の配列の配列になる。
たとえば text が A1B2C3 のとき、(text =~ /([A-C])([1-3])/).hitss[0] は配列 A,B,C、(text =~ /([A-C])([1-3])/).hitss[1] は配列 1,2,3 になる。 |
使用できる演算子の一覧を以下に示します。
| 演算子 | 左引数 | 右引数 | 結果 | 優先順位 | 意味 |
|---|---|---|---|---|---|
| + | 整小文 | 整小文 | 整小文 | 14 | 加算 |
| - | 整小 | 整小 | 整小 | 14 | 減算 |
| * | 整小 | 整小 | 整小 | 16 | 乗算 |
| / | 整小 | 整小 | 整小 | 16 | 除算 |
| % | 整 | 整 | 整 | 15 | 剰余 |
| - | 整小 | 整小 | 17 | マイナス | |
| & | 整 | 整 | 整 | 10 | ビット論理積 |
| ^ | 整 | 整 | 整 | 9 | ビット排他論理積 |
| | | 整 | 整 | 整 | 8 | ビット論理和 |
| ~ | 整 | 整 | 17 | ビット反転 | |
| == | 整小文論 | 整小文論 | 論 | 11 | 比較 (同じ) |
| != | 整小文論 | 整小文論 | 論 | 11 | 比較 (違う) |
| < | 整小文 | 整小文 | 論 | 12 | 比較 (より小さい) |
| > | 整小文 | 整小文 | 論 | 12 | 比較 (より大きい) |
| <= | 整小文 | 整小文 | 論 | 12 | 比較 (以下) |
| >= | 整小文 | 整小文 | 論 | 12 | 比較 (以上) |
| = | 任 | 整小文論 | 整小文論 | 3 | 代入 |
| =~ | 文 | 文 | 特 | 13 | 正規表現が一致するか |
| !~ | 文 | 文 | 特 | 13 | 正規表現が一致しないか |
| && | 論 | 論 | 論 | 7 | 論理積 |
| || | 論 | 論 | 論 | 6 | 論理和 |
| ! | 論 | 論 | 17 | 論理否定 | |
| [ ] | 配 | 特 | 任 | 19 | 配列要素の参照 |
| . | 任 | 特 | 任 | 19 | メンバの参照 |
| , | 任 | 任 | 配 | 2 | 配列要素の併記 |
| ? : | 論 | 任 | 任 | 4 | 三項演算 |
| ( ) | 特 | 任 | 任 | 18 | 関数呼び出し (引数付き識別子参照) |
| ( ) | 任 | 任 | 優先的に計算する部分を囲む括弧 | ||
| ; | 任 | 任 | 任 | 1 | 式の併記。最後の式の値を返す |
※優先順位は数値が大きいほうが高い。
※左引数、右引数、結果の記号の意味: 整=整数、小=小数、文=文字列、論=論理値、配=配列、任=任意、特=特殊
| 関数 | 意味 |
|---|---|
| max(a, b) | a と b の大きいほうを返します。a、b は整数または小数に評価される必要があります。 |
| min(a, b) | a と b の小さいほうを返します。a、b は整数または小数に評価される必要があります。 |
| dsp(a) | この関数が評価されたときに a を表示します。 |
Last updated at Tama Software Ltd.