[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

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

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

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

  • 米Google、高速・低メモリ消費の正規表現ライブラリ「RE2」を公開 | OSDN Magazine

    Googleは3月11日、正規表現ライブラリ「RE2」を発表した。動作が高速で「スレッドフレンドリー」な点が特徴。従来のバックトラック型正規表現ライブラリの代替として開発を進めていく。 Googleによると、同社はCode SearchやSawzallといったインフラやアプリケーションで正規表現を利用しているが、バックトラックアルゴリズムを利用した従来の正規表現実装では入力データに対し処理時間が指数的に増加することが問題となっていた。また、固定サイズのスタックを持つC++のマルチスレッドプログラムの場合、従来の正規表現実装ではスタックを使い切ってスタックオーバーフローを発生させることがあったという。これらを解決するために独自の正規表現エンジンを開発したとのこと。 RE2はどのような入力や正規表現に対しても一定の小さいメモリ量で動作するように開発されているのが特徴。オートマトン理論の下、処

    米Google、高速・低メモリ消費の正規表現ライブラリ「RE2」を公開 | OSDN Magazine
  • JavaScriptでの正規表現を覚えたいときに激しく使えるチートシート - IDEA*IDEA ~ 百式管理人のライフハックブログ

    ドットインストール代表のライフハックブログ

    JavaScriptでの正規表現を覚えたいときに激しく使えるチートシート - IDEA*IDEA ~ 百式管理人のライフハックブログ
  • あまり知られていないけれど、HTML5では正規表現が使えるようになる

    正規表現といえば、主にsedやawkといったUNIXのコマンドで、あるいはPerlPHPJavaScriptなどのスクリプト言語の中などで、プログラマーが文字列を操作するために使う道具でした。 その正規表現がHTML5でサポートされる見通しです。いままで正規表現を使わずに済んでいたデザイナやコーダーといった職種の方々も、いずれ仕事としてきちんと正規表現を扱わなければならない時代がやってきます。 HTML5のどこに正規表現が使えるようになるの? 正規表現は、input要素のpattern属性の中で使えることになる予定です。W3Cが2009年8月25日付け公開しているHTML5のワーキングドラフトの「4.10 Forms」の「4.10.4.2.8 The pattern attribute」では次のように記載されています。 The pattern attribute specifies a

    あまり知られていないけれど、HTML5では正規表現が使えるようになる
  • 正規表現まとめサイト | エンタープライズ | マイコミジャーナル

    Smashing Magazine - WE SMASH YOU WITH THE INFORMATION THAT WILL MAKE YOUR LIFE EASIER, REALLY. 文字列を処理するにあたって正規表現は欠かせない機能といえる。任意の文字列やテキストファイル、HTML/XMLから特定のキーワードを検索したり取り出し、置換をおこなうにあたって、正規表現が使えると使えないのとでは、プログラミングの手間やツールの活用度合いが変わってくる。 正規表現は便利で強力な機能だが、その独特の表記方法はプログラマ初心者には敷居の高いものでもある。Glen Stansberry氏による正規表現に関するチュートリアルや資料、ツールなどのまとめがSmashing MagazineにEssential Guide To Regular Expressions: Tools and Tutori

  • JavaScript正規表現メモ。 (JavaScriptでよく使う書き方。) - こせきの技術日記

    タイトル変えました。旧タイトル「JavaScriptでよく使う書き方」。よく使うけど毎回忘れる。 正規表現にマッチするかどうか。 RegExp#testを使う。 /abc/.test("abcdefg") // => true String#searchはマッチした位置を返す。マッチしない場合は-1。先頭にマッチすると0でfalseなので注意。真偽値が欲しい場合はString#searchを使わない。 "abcdefg".search(/xxx/) // => -1 "abcdefg".search(/def/) // => 3 "abcdefg".search(/abc/) == false // => true 正規表現の部分マッチを得る。 部分マッチを得るには、RegExp#execかString#matchを使う。execとmatchの速度は大して変わらない。 正規表現のベンチマー

    JavaScript正規表現メモ。 (JavaScriptでよく使う書き方。) - こせきの技術日記
  • 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found

    2009年03月19日18:00 カテゴリLightweight Languages 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ ああ、まただよ... かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜 正規表現って、プログラミング言語間の差が少ないサブ言語なのに、なぜ「PHP」がつくとダメ正規表現ばかり登場するのか。うんざりだ。 かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜メールアドレスは厳密にチェックしようとするとなかなか難しいのですが、簡単なチェックだったらこれでOKぽいですね。 /^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$

    「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found
  • 正規表現の入門(1) 基礎的なメタ文字

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    正規表現の入門(1) 基礎的なメタ文字
  • 正規表現エンジンを作ろう (2)〜NFAとDFAを実装する〜:CodeZine

    はじめに こんにちは。hirataraです。 稿は、正規表現エンジン作成の第2回目です。前回は正規表現の数学的な側面を説明しました。今回は正規表現エンジンの実際の評価器となる、NFAとDFAを実装します。 対象読者 正規表現をもっと知りたい方 情報科学分野に興味がある方 正規表現エンジンを実装する必要がある方 必要な環境 サンプルはPython2.5で開発しましたが、2.4の環境でも動くはずです。 Python2.5 が動作する環境 実装する正規表現の仕様 今回から正規表現エンジンの実装に入りますが、実際に手を動かし始める前に、到達すべきゴールを明確にしておきましょう。まず、連載中に実装する正規表現の仕様を決定します。この連載では数学的な定義である3つの正規表現のみを実装し、正規表現が当にDFAと等価であり、DFAをシミュレートすることで実装できることを確かめます。 文法 これから作る

    正規表現エンジンを作ろう (2)〜NFAとDFAを実装する〜:CodeZine
  • 正規表現エンジンを作ろう (1)

    はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表

    正規表現エンジンを作ろう (1)
  • 【ハウツー】ゼロからはじめる正規表現 秀丸編 - 行頭に文字列を挿入する (1) 正規表現の概要 | パソコン | マイコミジャーナル

    「正規表現(せいきひょうげん)」。コンピュータに触れている方なら、一度は耳にしたことがある言葉ではないでしょうか。正規表現とは、複雑に絡み合う文字の数々を、ひとつの文字列で表現する方法のひとつで、日でパーソナルコンピュータが普及する以前から、プログラミング環境を中心に普及してきました。 一見すると「自分はプログラミングしないから関係ない」と思われるかもしれませんが、正規表現は英字だけなく、2バイト文字である日語でも活用できるため、テキストエディタやワードプロセッサなど、様々な場面で活用することが可能です。そこで初心者向けの正規表現の活用方法を紹介していきます。 前述のとおり正規表現は、様々なプログラミング言語やアプリケーションに実装されているものの、その実装時期により表現方法が若干異なる"方言"を持っています。来はすべてのプログラミング言語やアプリケーションの差異を紹介したいのですが

  • 正規表現の問題集1(基本編)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    正規表現の問題集1(基本編)
  • 詳説 正規表現 第3版

    「正規表現がこれだけ多種多様な言語やアプリケーションに取り入れられているのは、立派な理由があるからだ。正規表現は非常に強力なのだ。(中略)正規表現を使えば、データを自由に操れるようになる。データをコントロールし、自分のための仕事をさせられるのである。正規表現をマスターすることは、自分のデータを支配することなのだ。」(書「はじめに」より) ―書は正規表現の概念を詳細に解説し、言語やツールの実例を豊富に示しながら、正規表現への理解を深める解説書である。第3版では、前版のJavaと.NETに加え、新たにPHPの章が追加された。正規表現の質を読み解く決定版。特に正規表現を使いこなしていると自負している人にほど読んでほしい。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ち

    詳説 正規表現 第3版
  • MOONGIFT: » 正規表現を試す「Visual REGEXP」:オープンソースを毎日紹介

    正規表現は便利なことこの上ない技術だが、それの書き間違えが原因でバグったり、ハマったりすることがこの上なく多い。?を入れるとか、改行も含めて判断するとかいったところがよく間違えたりする。 また、プログラムの中で使っていると再現させるのが面倒だったり、テストで実行したりするのが大変だ。そこでこれを使って効率よく正規表現を組み立てよう。 今回紹介するオープンソース・ソフトウェアはVisual REGEXP、GUIで試せる正規表現テストソフトウェアだ。 Visual REGEXPは下に対象文字列、上に正規表現を書いてきちんとマッチするかを試すことができる。日語を使った正規表現でもマッチした。大文字小文字の区別、改行コードの扱いなどはチェックボックスで指定できる。 試すだけでなく、置換して変換することも可能だ。例えばテキストファイルの文字を置き換える、くらいだったらプログラミングなしで完了する。

    MOONGIFT: » 正規表現を試す「Visual REGEXP」:オープンソースを毎日紹介
  • 404 Blog Not Found: get($one) if $you =~ /regexp user/;# 書評 - 入門正規表現

    2008年03月07日00:00 カテゴリ書評/画評/品評Lightweight Languages get($one) if $you =~ /regexp user/;# 書評 - 入門正規表現 技術評論社書籍編集部池さんより献御礼。 入門正規表現 岩谷宏 初出2008.03.05;販売開始まで掲載 404 Blog Not Found:書評x3 - SQL三大対決言語内言語としてこれだけ使われるようになったSQL。そうするともう一つの言語内言語、正規表現が気になる。しかしこちらの方はSQLと違って、現在のところ「フクロウ」の一人勝ちのように思える。誰か書かない? キタコレ!それも想定の範囲内の出版社と、想定の範囲外の著者の組み合わせで。 書「入門正規表現」は、タイトルどおりの。正規表現に関しては今まで「フクロウ」こと「詳細 正規表現」がほぼ唯一の選択肢だったが、原著も訳

    404 Blog Not Found: get($one) if $you =~ /regexp user/;# 書評 - 入門正規表現
    t_43z
    t_43z 2008/03/06
    予約した
  • http://cappuccino.jp/keisuken/logbook/20080128.html

  • 手軽に正規表現のテストができるツールが登場!Rubyで作られた『Rubular』

    ドットインストール代表のライフハックブログ

    手軽に正規表現のテストができるツールが登場!Rubyで作られた『Rubular』
  • JavaScriptの技法:正規表現を学ぶ - builder by ZDNet Japan

    データの妥当性検証は、ユーザからデータを受け取るウェブアプリケーションにとっては必須の機能だ。なぜなら、データの形式が正しいかどうかを、作業を行う前にまず確かめる必要があるからである。ウェブアプリケーションで妥当性の検証を行う際には、ASP.NETやJSPなどで利用可能なプラットフォーム固有の機能を使用するか、それともクライアントサイドでJavaScriptの機能を利用するかを選択することが可能だ。そして、ここでJavaScriptを選択した場合、正規表現を用いることによって検証作業を単純化できるようになる。 正規表現は一種のパターンマッチである。正規表現を用いるとテキストのパターンを簡単に表現することが可能になるため、正規表現はテキストデータの妥当性検証で大きな威力を発揮する。また、正規表現ではパターンマッチだけではなくテキストの置換を行うことも可能だ。私はかつてPerlを用いてUnix

  • JRuby、鬼車を取り込む | エンタープライズ | マイコミジャーナル

    JRubyの主要開発者であるCharles Nutter氏は27日(米国時間)、JRuby trunkにJoniがマージされたことを発表した。JoniはMarcin Mielczynski氏によってJavaに移植された「鬼車」の実装。鬼車はK.Kosako氏によってC言語で開発されている正規表現ライブラリ。正規表現オブジェクトごとに異なる文字エンコーディングを指定できるという特徴があり、The BSD Licenseのもとで公開されている。 鬼車を移植したJoniがJRubyへマージされたことは、JRubyにとってパフォーマンスの面で重要な意味をもっている。これまでJRubyで使っている正規表現の機能はその特性から性能のボトルネックになっていたわけだが、これでそのボトルネックが解消されたことになる。 JRubyの次期メジャーリリースはパフォーマンスの面で極めて興味深いものになりそうだ。すで

  • ドコモもauはとりあえず"da..me."@を受け取れるようにしとくべし : 404 Blog Not Found

    2007年11月20日12:00 カテゴリiTech ドコモもauはとりあえず"da..me."@を受け取れるようにしとくべし けだし同感なのだけど、これでもメアドを再設定しない人をどうするかという問題は残る。 ドコモもauもいいかげんにメールアドレス設定の仕様を直せ。 とりあえずドコモの携帯で確認したが、2007年11月現在のいまも、***.@docomo.ne.jpとか**....***@docomo.ne.jpといったメールアドレスの設定/取得は可能なままである。 というわけで、解決策を考えてみた。 実はRFC2822の規定では、da.me..@docomo.ne.jpというメールアドレスはNGだが、意外なことに"da.me.."@docomo.ne.jpであればOKなのだ。@の前の部分が""でくくられている場合、RFC2822はそれを特別扱いすることになっているので、こんなトリック

    ドコモもauはとりあえず"da..me."@を受け取れるようにしとくべし : 404 Blog Not Found