Rubyでの正規表現の使い方基本ガイド
正規表現の組み込みサポートが通常 Ruby、Perl、awk のようなスクリプト言語に限定されているのは残念です。その神秘性にもかかわらず、正規表現は強力なテキスト処理ツールなのです。正規表現はその神秘性にもかかわらず、強力なテキスト処理ツールです。それをライブラリのインタフェースではなく、ビルトインでサポートすることには大きな違いがあります。
正規表現とは、簡単に言えば、文字列の中でマッチする文字パターンを指定する方法です。Rubyでは、スラッシュ(/pattern/)の間にパターン(pattern)を書いて、正規表現を作るのが一般的です。また、RubyはRubyで、正規表現はオブジェクトであり、そのように操作することができる。
例えば、次のような正規表現でパターンを書くと、PerlやPythonを含む文字列にマッチします。
直前のスラッシュはパターンを定義するもので、マッチする2つの部分文字列をパイプ文字(|)で区切ったものである。パイプ文字は、"右側の文字列か左側の文字列のどちらか"を意味します。この例では、それぞれPerlとPythonです。算術式のように、パターンに括弧を使うことができるので、パターンは以下のように書くことができます。
パターンには、繰り返し(反復)を指定することもできます。/ab+c/ は、a、その後に 1 つ以上の b、そして c を含む文字列にマッチします。パターンのプラス記号をアスタリスクに変更すると、 /ab*c/ は、a、ゼロ以上の b、そして c の順にマッチする正規表現を作成します。
また、パターン内の1つまたは複数の文字のグループにマッチさせることも可能です。よくある例としては、空白文字(スペース、タブ、キャリッジリターンなど)にマッチする \s、任意の数字にマッチする \d、単語内に現れる任意の文字にマッチする \w などの文字クラスがあります。ドット(.)はほとんどすべての文字にマッチします。
一度作ったパターンを使わないのは、いつでも恥ずかしいことである。正規表現を使った文字列のマッチングには、=~マッチ演算子を使うことができます。文字列の中にパターンがあれば、=~はパターンの先頭を返し、そうでなければnilを返します。つまり、if文やwhile文の条件として正規表現を使うことができるのです。例えば、文字列にPerlやPythonが含まれている場合、次のようなメッセージが出力される。
puts "Scripting language mentioned:#{line}"
end
正規表現にマッチした文字列の部分は、Ruby の置換メソッドのいずれかを使って他のテキストに置き換えることができる。
line.gsub(/Python/,'Ruby') #Replace all 'Python' with 'Ruby'
以下の文を使って、PerlやPythonが登場する箇所をすべてRubyに置き換えてください。
関連
-
基本的なユーザー登録とログイン機能を実装するためのRuby on Railsチュートリアル
-
bundlerを使ったRuby環境のインストールと複数バージョンのgemの管理
-
RubyのXMLデータパースライブラリ「Nokogiri」の高度な使い方
-
Rubyのデザインパターン開発におけるProxyパターンの利用について
-
RubyのSimple FactoryパターンとFactory Methodパターンを利用する
-
Ruby on Railsのjquery_ujsコンポーネントが遅くなる問題が解決された
-
Rubyの基本文法チュートリアル
-
Rubyの基本的な環境変数の設定と一般的なインタープリタコマンド
-
Rubyにおけるrequireの使用例
-
Rubyプログラミングにおけるネーミングスタイルガイド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Rubyのオブジェクト指向プログラミングにおけるスコープの簡単な説明
-
Rubyの文字列と配列の最大化問題の考察
-
Ruby+Watirの自動テスト環境とWindowsでのデータ読み込みについて
-
CentOS7でruby on railsの開発環境を構築する。
-
Rubyのプライベートとプロテクトを簡単にご紹介します。
-
Ruby on RailsのActiveResourceの使い方解説
-
Ruby on Railsのルーティング設定に関するいくつかのアドバイス
-
Rubyでの例外処理コードの記述例
-
Rubyのクラスとモジュールの書き方のスタイルガイド
-
Rubyプログラミングにおけるアサインメント関連操作