モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)

Ruby コードスニペット (正規表現)

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2013/07/14
最終更新最終更新
2018/05/13
記事区分記事区分
一般公開

目次

    Rubyを使った効率的なスクリプトの書き方を紹介

    0
    ステッカーを贈るとは?

    sample.rb

    str = "001: This is a string."
    
    var1,var2 = 2,3          # 'EOS'とすると#{}による変数展開がなされない (%03dは展開される)
    doc = (<<"EOS" % var1)   # 括弧は省略可。要は<<"EOS"の次の行からEOSまで。(参: <<-"EOS"とすると前に空白等が入ってもOK(ブロック内で重宝))
    %03d: First line.
    00#{var2}: Second line.
    EOS
    
    puts "1: ok" if /(this|that)/ =~ str  # thisまたはthat
    
    puts "2: ok" if /(this|that)/i =~ str  # 大文字小文字を区別しない
    puts $1  # マッチした場合に、() 内は$1,$2,...に格納される
    
    puts "3: ok" if /(?<matched>this|that)/i =~ str  # 鬼車 (Rubyが採用した正規表現ライブラリ) の記法
    puts matched
    
    puts "4: ok (#{$1})" if /(.*)/ =~ doc
    puts "5: ok (#{$1})" if /(.*)/m =~ doc # '.'が改行コードにもマッチする (複数行文字モード)
    
    puts "6: ok (#{$1})" if /^(Second.*)$/ =~ doc # ^: 文字列の先頭または改行コードの直後, $: 改行コードまたは文字列の終端
                                                  # (ポイント: 改行コードの直後は文字列の先頭ではない、改行コードは文字列の終端とは限らない)
    
    puts "7: ok (#{$1})" if /\A(Second.*)$/ =~ doc # \A: 文字列の先頭 (改行コードの直後にはマッチしない)
    puts "8: ok (#{$1})" if /^(First.*)\Z/ =~ doc  # \Z: 文字列の終端 (改行コードにはマッチしない)
    
    puts "9: ok (#{$1},#{$2},#{$3})" if /^(\d+):\s(\w+)\s([a-zA-Z0-9._\-\s]+)/ =~ str
                                  #\d, \s, \w, [] ('.'は[]内では特殊文字でない。一方で'-'は特殊文字)
    
    puts "10: ok" if /(\w+\s){3}/ =~ str # 3回の繰り返し
    puts "11: ok" if /(\w+\s){4}/ =~ str
    puts "12: ok" if /(\w+\s){3,4}/ =~ str # 3-4回の繰り返し
    
    puts "13: ok (#{$1})" if /(\d+)?/ =~ str # (\d+)に0回または1回マッチ
    puts "14: ok (#{$1})" if /(\d+?)?/ =~ str # +?: 欲張りでない量化指定子
    

    実行例

    $ ruby sample.rb 
    2: ok
    This
    3: ok
    This
    4: ok (002: First line.)
    5: ok (002: First line.
    003: Second line.
    )
    9: ok (001,This,is a string.)
    10: ok
    12: ok
    13: ok (001)
    14: ok (0)
    
    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    Rubyを使った効率的なスクリプトの書き方を紹介

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • レイアウトおよび部分テンプレートに関するまとめ (Rails4)
        レイアウトおよび部分テンプレートはどちらもテンプレート (*.html.erb) に共通の要素をまとめておき、任意のテンプレートから利用できるようにしておくための仕組みです。フッターやヘッダーといった大枠はレイアウト、小さなパーツは部分テンプレートというイメージで使い分けましょう。 レイアウトの使用方法 クラス毎に指定する方法と、アクション毎に指定する方法があります。 app/views/layo...
        taro三世taro三世10/21/2016に更新
        いいねアイコン画像0
      • OAuthを用いずにTwitterに自動投稿する (回数制限あり, Selenium with Ruby)
        Seleniumを用いて、OAuthを用いずにTwitterに自動投稿するRubyスクリプトを記述してみます。連続で複数回実行すると、ボット判定としてキャプチャ認証が発生します。その認証までは通過できませんので悪しからず。また、Twitterの仕様変更次第ではDOMの構造が変化するため、下記サンプルは機能しなくなる恐れが有ります。 twitter_post.rb #!/usr/bin/ruby r...
      • Ruby における日本語のエンコーディング
        日本語を含めて多言語対応する際には、Asciiコード以外の文字コードセットが必要になります。日本語が主となる場合、よく使われる文字セットにはUnicode, Shift_JIS, EUC-JPがあります。このうち Unicode だけは特殊であり、世界中のあらゆる文字を収録しようとしていることから 1 文字を表現するために必要なバイト数が大きくなってしまっています。そのため Unicode のうち...
        だいふくうさぎだいふくうさぎ4/21/2017に更新
        いいねアイコン画像0
      • Rails3ビューテンプレートの基本的な使用方法 (Ruby)
        Railsでは、ERB (eRuby (テキストファイルにRubyスクリプトを埋込む書式の仕様) をRubyで実装したもの) を用いてHTML内にRubyスクリプトを埋込むことができます。 <% %> で囲むと出力されません (if-elseなど制御構文を記述します) <%= %> で囲むとエスケープ出力されます <%== %> で囲むとエスケープされずに...
        ほんわかパンダほんわかパンダ10/21/2016に更新
        いいねアイコン画像0
      • ビューヘルパーの作成方法 (Rails4)
        事前準備 $ rails generate scaffold myModel field1:string field2:integer field3:date field4:boolean $ rake db:migrate config/application.rb module MyApp class Application < Rails::Application ... ...
        クロクロ10/21/2016に更新
        いいねアイコン画像0