タグ

正規表現に関するmainyaaのブックマーク (7)

  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

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

    mainyaa
    mainyaa 2014/03/04
    そういえばそんな話もあったなぁ。昔過ぎて忘れてた
  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

  • Flex 3 Regular Expression Explorer

  • 正規表現愛

    弊社には、アンチ正規表現の人がいますが、私は熱烈な正規表現 Lover である。 大崎氏の「Perl 正規表現雑技」とかは、正規表現 Lover 垂涎のコンテンツとして、ブラウザのリンクバーに入れている程である (嘘)。 正規表現は覚えてモノにすれば、シアワセになれる素晴らしい仕組みなのです。 昨日、Shibuya.pm のテクニカルトークに行った際「はてなでは XML 系の CPAN モジュールはあまり使っておらず、XML の parse には殆んど正規表現を使用している」という話が出てきて、嬉しさのあまり身震いした。 parser を書くのが面倒臭くて「XML::Simple 最強」とかホザいた自分に対しての自戒と、弊社の Chief Regular Expressioner という肩書を持つ (自称) 立場の人間として、たまには、正規表現ゴリゴリなネタでも書いてみようかなと思いますた

    正規表現愛
    mainyaa
    mainyaa 2008/07/28
    覚えられそうにない名前。クロイスタ。
  • phpspotの人は正規表現について語らないほうがいいのでは | 秋元@サイボウズラボ・プログラマー・ブログ

    「実用的なPHP用の正規表現x8」というphpspot開発日誌という記事で、 8 Practical PHP Regular Expressions – Web devlopment blogという、今日del.icio.us/popularに出ていた記事の紹介がされている。このサイトの記事はいつもそうだけど、はてなブックマークでも人気で、既に50名を越えるユーザにブックマークされているようだ。 1 メールアドレスチェック $string = "first.last@domain.co.uk"; if (preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $string)) { echo "example 3 successf

    mainyaa
    mainyaa 2007/10/17
    英語ブログからタイトルが魅力的な記事を試さないで訳すだけメソッド。
  • 本邦初公開!電話番号の正規表現 - にぽたん研究所

    近年「邦初公開」って表現、あんま使わないすね。。。 さて、Regexp::Assemble という、正規表現愛をものすごく感じるモジュールを見付けました。 愛がある上に、ものすごく便利です。 use strict; use Regexp::Assemble; my $ra = Regexp::Assemble->new; $ra->add('a'); $ra->add('b'); print $ra->re, "\n"; みたいなのを書くと、 (?-xism:[ab]) という結果になる。 要は、add() メソッドに渡した文字列や正規表現の全てにマッチする正規表現を作ってくれるスグレモノ。 (?-xism: 〜 ) というのは前にも書きましたが quote regex 演算子を使ったために付加される「クロイスタ」です。 この結果に対しては、クロイスタは別に無くても構わないので、実質 [

    本邦初公開!電話番号の正規表現 - にぽたん研究所
    mainyaa
    mainyaa 2006/07/31
    電話番号なんかより、Regexp::Assembleのほうが気になった。
  • [を] UTF-8 の文字にマッチする正規表現

    UTF-8 の文字にマッチする正規表現 2006-03-09-1 [Programming] UTF-8の文字にマッチする正規表現の素直版。 レガシーなのに対応するとき用にメモ。 [\x00-\x7f]|[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7] [\x80-\xBF]{3}|[\xF8-\xFB][\x80-\xBF]{4}|[\xFC-\xFD][\x80-\xBF]{5} 1 2 3 4 5 60xxxxxxx 110xxxxx10xxxxxx 1110xxxx10xxxxxx10xxxxxx 11110xxx10xxxxxx10xxxxxx10xxxxxx 111110xx10xxxxxx10xxxxxx10xxxxxx10xxxxxx 1111110x10xxxxxx10xxxxxx10xxxxx

  • 1