タグ

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

  • Brainfuck interpreter in Ruby's Regexp - 兼雑記

    Ruby の正規表現だけで Brainfuck インタプリタを作ることができました。正規表現の実行は =~ だけなので、ループなども正規表現の内部で実行してます。 https://github.com/shinh/hack/blob/master/bf_rb_reg/bf.rb つまりどういうことができるかというと、 BF_REG という Regexp と BF_SUFFIX という文字列定数があって、 bf という文字列に格納された Brainfuck のコードを BF_REG =~ bf + BF_SUFFIX で実行することができます。出力は $~['o0'], $~['o1'], ... に入っているので、 output = '' 256.times do |i| o = $~["o#{i}"] break if !o output += o end 的なコードで取り出すことができ

    Brainfuck interpreter in Ruby's Regexp - 兼雑記
  • PerlのRegexp::TrieをRubyに移植した - Islands in the byte stream

    GitHub - gfx/ruby-regexp_trie: Optimized Regexp builder with Trie (a Ruby port of Perl's Regexp::Trie) # Gemfile gem 'regexp_trie' これははてなキーワードやWikipediaのリンクのように、ある程度の量のテキストに対して大量のキーワードをマッチさせるときに、最適化した正規表現を生成するライブラリです。 はてなキーワード*1をとあるブログエントリ*2にマッチさせるための簡単なベンチマークもあります。 example/benchmark.rb 結果: $ bundle exec example/benchmark.rb (snip) user system total real Regexp raw 4.270000 0.030000 4.300000 ( 4.3

    PerlのRegexp::TrieをRubyに移植した - Islands in the byte stream
  • 第6回 Ruby M17N 事始め:正規表現編 | gihyo.jp

    はじめに 今回は、今話題の正規表現について、その歴史と限界、そして限界を越えた先までを解説します。なお、るりまやるびまの記事もあわせて読んでみてください。 正規表現とは さて、正規表現はもともと1940年代に神経生理学者によって生まれ[1]⁠、数学者[2]や言語学者、情報工学者たちによって理論的背景が研究されてきました。これを最初にコンピュータで用いたのがKen Thompsonによるqed[3]で、それ以降正規表現はテキスト処理に欠かせないツールとして愛されてきました[4]⁠。 基的な演算 正規表現では、量化・連結・選言という3つの演算を用いて、目当ての文字列群だけを識別する規則を記述します[5]⁠。 量化: 語を繰り返す。一般に用いられる演算子*から、スター演算とも言う。結合則は強い。 連接: 語と語をつなぐ。 選言: ある語か別の語かのどちらか。結合則は弱い。 演算子 Rubyでは

    第6回 Ruby M17N 事始め:正規表現編 | gihyo.jp
  • ゆの in D - d.y.d.

    17:37 08/07/30 ICFP Workshops via 住井さん で、 ML Workshop の採択論文リストが出てることを知りました。 "Many holes in Hindley-Milner" (複数穴あり Zipper 的なものをMLで扱う話、穴の個数を型情報に含めるための加算できる自然数表現を差分リストで、 っていう技が面白かった) と "Unrestricted call-by-value recursion" (call-by-value で再帰的な (ループした) データ定義を実現する手法、これで、フルの call-by-need セマンティクスがなくてもそっち方面で使われてる テクニックをいくらか持ってこれるよ)というのだけ読んでみた。 他の併設ワークショップ の論文リストも 揃ってきてるみたいですね。 個人的に WGP の "Concepts =? Typ

    yugui
    yugui 2008/07/11
    なるほど。
  • 正規表現はお好き? - steps to phantasien

    積んであった Beautiful Code を読んでみる. 第一章はカーニハンによる正規表現の話. 数十行のコードで簡単な正規表現を実装してみせる. パターン文字列を内部表現に変換せずマッチに使うぜ, コードも短い, ビューティホー! ...という主張なのだが, それはほんとにビューティホーなのか. UNIX 人の感覚にはついていけない. それにしても彼らは正規表現が好きだ. いつものその話ばかりしている. artu はいうまでもなく プログラミング作法 にも正規表現が出てきた. まったくこのマンネリめ. そう斜に構えつつ読み直してみると, 案外ラディカルな話も載っているのに気付く. 9.7 "オンザフライコンパイル" より: Ken Thompson はまさにこの方法によって 1967 年に IBM7094 上に正規表現を実装した. 彼のバージョンは, 正規表現に含まれる様々な処理を小さ

  • 正規表現 - lethevert is a programmer

    正規表現の処理効率は、オートマトンの作り方の部分に依存して、オートマトンのマッチ処理の方はあまりバリエーションはないのかなと思って、ちょっと調べていました。 とりあえず、探索を深さ優先にするか幅優先にするかという選択はあると思うのですが、マッチ結果が変わるような気がします。 citeseerで調べていたところ、次の論文を見かけました。 http://citeseer.ist.psu.edu/navarro99fast.html abstractを読んだ感じでは、既に読み込んでマッチに失敗した部分の文字列をスキップして検索をするという方法のようで、KMP法やBM法に似たアイデアなのかなと思いました。 後で読んでみます。

    正規表現 - lethevert is a programmer
  • http://www.yotabanana.com/lab/20060906.html

  • 101号室: [perl][regex] 幾つあるか分からない後方参照を全て取得する

    前の記事へ « goo地図 「最寄り駅&写真」機能 | トップページ | [firefox][security] .co.jpブロッカー 次の記事へ 2006年05月14日 [perl][regex] 幾つあるか分からない後方参照を全て取得する 幾つあるか分からない後方参照$1, $2, ...を全て取得する。 マッチングの結果に後方参照がいくつ出るか分からないが、関数に全て渡したい場合に便利。 CPANにこの手の関数がないようなので、名前が思いついたらアップする予定。 例: 出力結果: Big Brother Is Watching You. my $str = q/big brother is watching you./; my $regex = qr/(\w+\s*)(\w+\s*)(\w+\s*)(\w+\s*)(\w+\s*)/; #単語に分解 # ---------

    yugui
    yugui 2006/06/30
    ちょwww "BB" wwww
  • http://www9.ocn.ne.jp/~ymt/perl6/rules.html

  • 正規表現の論理和、論理積 - 技術メモ帳

    eregex モジュールをインクルードすると、 論理和、論理積できるようになる。 require 'eregex' puts "hello" if "this is test" =~ /os/&/this/ puts "hello" if "this is test" =~ /is/|/this/

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 正規表現の由来 - finalventの日記

    正規表現の起源をたどると、人間の神経系の仕組みに関する初期の研究にさかのぼります。神経生理学者 Warren McCulloch と Walter Pitts は共同で、神経回路網を記述するための数学的な方法を考案しました。 1956 年、数学者 Stephen Kleene が、この McCulloch と Pitts の功績に基づいて、『Representation of Events in Nerve Nets』という題名の論文を発表しました。この論文で正規表現の概念が紹介されたのです。正規表現は、"正則集合の代数 (the algebra of regular sets)" と彼が名付けた概念を記述する際に使用した表現式です。これが、"正規表現" という用語の由来です。 ⇒Dictionary of Philosophy of Mind - McCulloch, Warren St

    正規表現の由来 - finalventの日記
    yugui
    yugui 2006/06/23
    チョムスキー周辺が由来だと思ってたよ。
  • 「すべての漢字を取り出す正規表現」の続き - totonのブログ

    id:toton:20051102 がはてなブックマークの「最近の人気エントリー」のトップに来ていたため、アクセスが結構あった様子。っちゅーわけでアフターケアとして少し検証してみます。 間違いがあったらヤなのでwww.unicode.orgのUnihan Radical-Stroke Index っちゅーunicodeデータベース検索で「一:U+4E00」と「龠:U+9FA0」の境界を調べてみた。 参考:id:toton:20050120 「一:U+4E00」のコード体系とフォント表示と「龠:U+9FA0」のコード体系とフォント表示 一発で検索できて便利ですね。 ではU+9F00からU+9FFFまでのテーブルを参照しましょう。 9Fのテーブル内で「龠:U+9FA0」を探すのだからA0(最上段の右端)を見ると、U+9FA5まで漢字が存在する。こりゃいかんと思ったが「龠:U+9FA0」はJIS

    「すべての漢字を取り出す正規表現」の続き - totonのブログ
  • 第3回 正規表現勉強会

    資料の原稿 「詳説 正規表現」を読む、勉強会資料です。 プレゼン形式(S5)の表示 - http://dev.ariel-networks.com/articles/workshop/regex/paper/s5_document

    yugui
    yugui 2006/05/28
    まとめ
  • 正規表現最新リンク集2005

    正規表現/文字コード最新リンク2005 [3000URL最新人気リンク発表][お報せ][開発管理運営者][サイトマップ] ★リンク追加希望はホムペ紹介掲示板へ | 文字主体の高速表示リンク集 | 紹介文付き ■:最近行ってない | ■:最近行った | ●リンク切れ最終チェック:2003/10/26 NEWSだ!(^o^)/ : 台風 - 地図検索 Start is Hello world : HSP - C - Borland - VB - DLL&OCX - Web開発 - DB - 正規表現 コミュニティ : 掲示板 - 市場 - 出会い  トレンド : 月別レシピ(その季節しか出ない) メモ帳(M)あります : 小説 - 料理 - 占い - ? - 辞書&文例 - HARD - SOFT - 政 - 名スレ ◆正規表現って何? ◆正

  • 正規表現

    正規表現 前のドキュメント ViViの正規表現処理について説明する。 ■ 有限オートマトン チョムスキーの言語理論によれば、形式文法はクラス0~3に分類できる。正規表現は生成規則の制約が最も強いクラス3に属し、入力文字列が与えられた正規表現として受理されるかどうかを有限オートマトンにより決定することが出来る。 有限オートマトンとは下図の様に(有限の)状態と、入力文字によりどの状態に遷移するかの規則により構成されるものである。 'a'     'b' ○────→○────→◎ q0     q1     q2 上図では3つの状態、q0, q1, q2 があり、'a' が入力されると状態 q0 から q1 に遷移し、'b' が入力されると q1 から q2 に遷移することを表す。q2 は受理状態なので、"ab" が入力文字列であれば、めでたく受理されることになる。 正規表現を有限オートマト

  • 1