タグ

rubyとregexに関するbeth321のブックマーク (3)

  • 正規表現 (Ruby 2.5.0)

    [edit] メタ文字列とリテラル、メタ文字とエスケープ 式展開 文字 任意の1文字 文字クラス 特別な文字列に対するマッチ 繰り返し キャプチャ グループ 部分式呼び出し(subexpression call) 選択 アンカー 条件分岐 オプション エンコーディング コメント フリーフォーマットモード 非包含オペレータ (absence operator) (実験的) 一覧 特殊変数 参考文献 正規表現(regular expression)は文字列のパターンを記述するための言語です。また、この言語で記述されたパターンも正規表現と呼びます。 正規表現を用いると、文字列が指定したパターンを含んでいるかどうかを判定し、また含んでいるならばそれが文字列中のどの場所であるかを知ることができます。 /pat/ %r{pat} などの正規表現リテラルや Regexp.new などで正規表現オブジェク

  • RubyのString/Regexpクラスによる強力な文字列操作/正規表現

    連載目次 前回の「RubyのRangeクラスと範囲オブジェクト、範囲演算子、イテレーターの使い方」では、数などの範囲を表現するためのRangeクラスと、ArrayクラスやHashクラス、Rangeクラスに関わりの深い概念である「イテレーター」について解説しました。 今回も、引き続きRubyの組み込みクラスの解説を行います。ここでは、特に文字列を表現するためのStringクラスと、正規表現を扱うためのRegexpクラスについて学びましょう。 Stringクラスにも有用なメソッドがたくさんありますし、正規表現は文字列と密接に関わっており、文字列を扱う上で非常に強力な武器となります。ただし強力であると同時に、自分以外の人が書いた正規表現の意味を理解するのは困難です。用法用量を守って正しく正規表現を使いこなしましょう。 Stringクラスのメソッドに文字列操作を、よく使うものを中心に紹介 Stri

    RubyのString/Regexpクラスによる強力な文字列操作/正規表現
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • 1