職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

クラスとは

2021年11月19日 | Ruby3.0.1
クラスとは


【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

【クラスとは】
クラスの例文
class Car
def initialize(carname)
@name = carname
end

def dispName
print(@name)
end
end

オブジェクト指向でないプログラムでは行いたい処理を順に列挙していきますが、オブジェクト指向ではまず何かを行う物体の設計図を作成し、設計図から物体(オブジェクト)を作成し、その物体に処理をさせます。

サンプル
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

文字クラスにおける日本語

2021年11月17日 | Ruby3.0.1
文字クラスにおける日本語


【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

Rubyにおいてはマルチバイトを認識できる文字コード(u, s, e)を指定した場合には文字クラス内に全角文字を1つの文字として指定することが出来ます。

/[赤青緑]色/u
「赤」「青」「緑」はそれぞれ1つの文字として扱われますので、上記は「赤色」「青色」「緑色」のいずれかの文字列にマッチします。

【ひらがな、カタカナ、漢字を表す文字クラス】
文字クラスではメタ文字のハイフン(-)で範囲指定が可能です。そこでひらながとカタカナを表す文字クラスは概ね次のように記述することが出来ます。

/[ぁ-ん]/u
/[ァ-ヴ]/u

漢字を表す文字クラスは文字コードによって異なります。
/[一-龠]/u
/[亜-煕]/s

サンプルプログラム
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

文字コードによるメタ文字(.)のマッチの違い

2021年11月15日 | Ruby3.0.1
文字コードによるメタ文字(.)のマッチの違い


【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

メタ文字(.)は任意の1文字にマッチしますが、文字コードが「NONE(ASCII)」以外の場合にはメタ文字(.)は全角文字の1文字にマッチするようになります。

/a.b/u

上記のような正規表現オブジェクトを作成した場合、「aob」や「atb」などだけではなく「a山b」や「a本b」などにもマッチするようになります。

サンプルプログラム


サンプルプログラム(/nを消す)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

正規表現オブジェクトの文字コードの指定

2021年11月14日 | Ruby3.0.1
正規表現オブジェクトの文字コードの指定


【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

・正規表現オブジェクトを使って文字列とのマッチを行う場合、
文字列の文字コードは「$KCODE」で設定されている文字コードを使ってマッチするかどうかを行います。

・「$KCODE」に設定が行われていない場合
デフォルトの値は「NONE(ASCII)」ですので日本語を取り扱うことは出来ません。「SJIS」「EUC」「UTF-8」のいずれかの文字コードを設定しておく必要があります。

通常は「$KCODE」に使用する文字コードを事前に設定しておけばいいのですが、正規表現を使用する場合だけ文字コードを別のものに指定することも出来ます。この場合は次のように正規表現オブジェクトを作成します。

/パターン/文字コード

【Regexp.newメソッドを使って正規表現オブジェクトを作成する場合】
Regexpクラスのクラスメソッドである「new」メソッド又は「compile」メソッドを使って正規表現オブジェクトを作成することも可能です。

Regexp.new(string[, option[, code]])
この時、3番目の引数で使用する文字コードを指定することが出来ます。文字コードとして指定できる値は先ほどと同じです。例えば文字コードに「UTF-8」を指定する場合は次のように記述します。

Regexp.new("パターン文字列", nil, "u")
3番目の引数を指定する場合は2番目の引数を省略できません。2番目の引数であるオプションに何も指定しない場合は「nil」を指定して下さい。

サンプルプログラム




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

否定の先読み

2021年11月12日 | Ruby3.0.1
否定の先読み


【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

先読みには否定の先読みも用意されています。否定先読みを行うには、パターンを「(?!」から「)」の間に記述します。

/パターン(?!否定先読みパターン)パターン/

先読みはマッチしているかどうかを調べる位置を動かさずに先読みの中のパターンがマッチするかどうかを調べるものでしたが、否定先読みは位置を動かさずに指定したパターンを否定したものにマッチするかどうかを調べます。

/(a)(?!bbb)(b)/

例えば上記の場合、「a」で始まり、「a」の後に「bbb」が記述されていないかどうかを、マッチしていれば改めて「a」の後に「b」が続く文字列にマッチします。結果的に「a」の後に「b」が続くが「abbb」とはなっていない文字列にマッチします。
× abbb
× abbbon
○ abbe
○ ab

サンプルプログラム
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする