タグ

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

  • 正規表現入門 星の高さを求めて

    第13回日情報オリンピック(JOI2013/2014)春季トレーニング合宿での講義資料です. http://www.ioi-jp.org/camp/2014/2014-sp_camp-rules.html 【概要】 正規表現とはパターンマッチングのための記法であり,文字列検索の便利な道具として広く親しまれています.この講義では,正規表現の基礎から始め,「星の高さ」という性質に注目して正規表現の裏側に潜む数理構造に迫っていきます.1960年代から未解決である「星の高さ問題」に浪漫を感じてもらえると幸いです.Read less

    正規表現入門 星の高さを求めて
  • gkbr.me

    このドメインを購入する。 gkbr.me 2018 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • それで Perl 6 の何がすごいんだと思ったあなた。ここがすごいんです。 - ヤルキデナイズドだった

    たとえばこんな。 Rakudo Star ではどれも実装済み。今すぐ使えます。 強化された正規表現 Perl 6 の公式なパーサ自体も Perl 6 の正規表現で書かれています。 ……は置いといて。10行ちょっとで CSV をパースする正規表現が書ける。クォートされた値にも複数行にまたがる値にも対応。 # CSV クラスは以下のものを修正して使っています # http://github.com/masak/csv/blob/master/lib/Text/CSV.pm # 正規表現をまとめた grammar (クラスの一種) grammar CSV { regex TOP { ^ <line> ** \n <empty_line>? $ } regex line { <value> ** ',' } regex value { | <pure_text> | \s* \" <quoted_

    hitsujibane
    hitsujibane 2010/09/05
    俺の使ってる正規表現と違う……
  • re2 - Project Hosting on Google Code

    This is the source code repository for RE2, a regular expression library. For documentation about how to install and use RE2, visit https://github.com/google/re2/. The short version is: make make test make install make testinstall Building RE2 requires Abseil (https://github.com/abseil/abseil-cpp) to be installed on your system. Building the testing for RE2 requires GoogleTest (https://github.com/

    re2 - Project Hosting on Google Code
  • 正規表現基礎文法最速マスター With Perl - 小池啓仁 ヒロヒト応援ブログ By はてな

    Perlでの正規表現のサンプルと文法一覧です。 他の言語をある程度知っている人はこれを読めば正規表現の基礎をマスターして正規表現を書くことができるようになっています。 簡易リファレンスとしても少し利用できると思います。 他言語からの人は、正規表現を使う機会がなかったかもしれませんが・・・。 Perlでは、正規表現を使うための言語と言っても過言ではありません。 正規表現を使うことによりテキスト(文字列)編集処理が飛躍的に楽になるのです。 では、まずはじめにテストデータ、family.txt を用意します。 このテストデータを元にしてサンプルプログラムを踏まえて解説をしていきますね。 ・family.txtファイルの内容 macha koike yachu koike chaichan koike hiro koike mama koike papa koike koike 6 ni-bo-

    正規表現基礎文法最速マスター With Perl - 小池啓仁 ヒロヒト応援ブログ By はてな
  • TEXTdrop|翻訳・オンラインカジノ 日本円のプログラミング

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

    hitsujibane
    hitsujibane 2009/10/12
    チートシートが色々
  • 正規表現をいまのうちに覚えておきたい人のためのリソース集

    HTML5で正規表現がサポートされる、といったことをきっかけに、正規表現はプログラマだけでなくWebクリエイター全体のスキルとして求められていくものになっていくのではないでしょうか(参考:あまり知られていないけれど、HTML5では正規表現が使えるようになる )。 ここではそうした正規表現の初学者や、一度挫折したけど再入門したい人、そしてより高度な内容をマスターしたいすべての人のためのリソース集を作りました。 初学者向けには「はじめての正規表現」 「はじめての正規表現」は、文字通り正規表現という言葉は知っていても中味はよく分からない、という初学者の方にぴったりのコンテンツ。紙芝居形式のプレゼンテーションで楽しく正規表現について把握できます。 はじめての正規表現 初学者の方には、次の2つの記事も手っ取り早く読めて概要を把握できますので紹介しておきます。 使うほどに良さが分かる正規表現(1/2)

    正規表現をいまのうちに覚えておきたい人のためのリソース集
  • 「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
  • 正規表現エンジンを作ろう(6) - Pixel Pedals of Tomakomai

    連載最終回では、主にNFAエンジンについて説明しました。鬼車等の正規表現エンジンも記事で紹介したエンジンのようにNFAをバイトコードに変換して処理を行っています*1ので、今回の記事が少しでもソースを読む際の助けになればと思います。 さて、記事中で紹介したregexですが、こいつはキャプチャも対応しています。連載の中では一切キャプチャに触れませんでしたので、どのように行っているのか簡単にソースを追っかけてみましょう。 ./tryからキャプチャした値にアクセスするには、第3引数に文字列を渡します。そうすれば、\1〜\9をキャプチャした値に変換したり&をマッチした文字列全体に変換したりしてくれます。 % ./try 'a(.+)(c|b)' 'cbacbacba' '\1,\2,&' 1 \1 \2 cbac,b,acbacbこのキャプチャ機能の呼び出しはregsub.c内にありますが、こいつは

    正規表現エンジンを作ろう(6) - Pixel Pedals of Tomakomai
  • 正規表現エンジンを作ろう(4) - Pixel Pedals of Tomakomai

    連載も第四回となりました。今回が正規表現エンジンを作る上で一番重要な部分で*1、正規表現とNFAの関係を説明しています。結局は当たり前のことしか言ってないんですが、そこはコロンブスの卵でして、知ってるのと知らないのとでは大違いです。 さて、この連載ではNFAをPythonで定義通りに忠実に実装しています。 この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表現エンジンを作り上げます。 第一回 この実装は概念を理解するのには有用なのですが、実用的な正規表現エンジンとしては明らかにオーバースペックです。Regular Expression Matching Can Be Simple And FastでのC++での実装を見ながら、現実的なNFA表現の落としどころを簡単に見てみましょう。 C++実装のNFAの説明 C++の実装では、NFAを構造体のリスト構造として

    正規表現エンジンを作ろう(4) - Pixel Pedals of Tomakomai
  • 正規表現エンジンを作ろう(3) - Pixel Pedals of Tomakomai

    第三回の公開です。今回は字句解析と構文解析を自作しました。 格的な構文解析器は、通常 yacc 等のツールを利用して自動で作ることが多いですが、今回の正規表現の文法は単純なので自作してしまいます。 じゃあ、ツールを利用するとどうなるの? ってのをやってみましょう。PLYを使って今回の記事の処理を作ってみます。PLYは、lexとyaccをPythonで実装し直したツールです。 インストール easy_installで入れちゃって下さい。 % easy_install ply 使い方 ドキュメントが和訳されちゃってるので見ちゃって下さい。 基的には ply.lexとply.yaccをimportして、指定された命名*1でルールを記述し、lex.lex() とか yacc.yacc() して初期化してやる感じです。初期化したら、lex.input()やらlex.token()やらyacc.p

    正規表現エンジンを作ろう(3) - Pixel Pedals of Tomakomai
  • 正規表現エンジンを作ろう(2) - Pixel Pedals of Tomakomai

    CodeZineさんで第ニ回が公開されました。今回は最も底辺の部分である、NFAとDFAを実装しています。ただし、NFAの実行部に関しては以下の通り実装しませんでした。 このためNFAを実行するソースはDFAに比べてかなり複雑になります。 ただし、今回はNFAを実行することはないので、NFAを実行するソースは実装しません。 これを、実装してみましょう。第一回で述べた通り、NFAを評価するには2種類の方法があります。 なお、実行部分の取り出しはDFAと同様に、get_runtime()メソッドで行います。実装は二つあるので、お好みの方で。*1 def get_runtime(self): return NFARuntime(self) # return NFABacktrackRuntime(self) 幅優先 最初は、幅優先の方法です。これは、選択しうる状態を全て保持しながらシミュレーショ

    正規表現エンジンを作ろう(2) - Pixel Pedals of Tomakomai
    hitsujibane
    hitsujibane 2009/08/14
    CodeZineの連載と一緒に読みたい
  • 正規表現エンジンを作ろう一覧

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

    正規表現エンジンを作ろう一覧
  • 回文や XML にマッチする鬼車の正規表現 - まめめも

    ref: 鬼車 正規表現 Version 5.9.1 ref: Ruby Freaks Lounge: 第6回 Ruby M17N 事始め:正規表現編 \g と \k について今までちゃんとわかってなかったけれど、少しわかったような気になったのでメモ。Ruby というより鬼車の話なので、PHP でも使えるかもしれない。試してないけど。 田中哲スペシャル \g の基 \g で参照される括弧の中身がそこにそのまま書かれたと思えばいい。 re = /\A(?<foo>abc...def)\g<foo>\z/ # \g<foo> を展開して考える # /\A(?<foo>abc...def)abc...def\z/ と同じ意味 p "abc123defabc123def".match(re) # マッチ p "abc123defabc456def".match(re) # マッチ p "abc1

    回文や XML にマッチする鬼車の正規表現 - まめめも
  • 正規表現に見切りをつけるとき

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

    hitsujibane
    hitsujibane 2009/01/27
    正規表現では、括弧が入れ子になったデータを処理しづらい。そのため、ANTLRを使ってパーサを書く。lex/yacc、flex/bision、JavaCCよりANTLRのが便利らしい
  • 正規表現エンジンを作ろう(5) - Pixel Pedals of Tomakomai

    連載第五回にして、ようやく正規表現エンジンが完成しました。それとも、逆にあっけなく完成してしまって拍子抜けと言ったほうがいいでしょうか??(笑) こんなに簡単に実装できたのは、今回のエンジンではキャプチャを実装してないことが大きいでしょう。キャプチャを実装するとなると、同時に「最長一致*1」を実現しなければならなくなりますので、実装は複雑になります。 さて、今回作ったエンジンはDFAエンジンでしたが、こちらのエントリで作った深さ優先のNFA評価器を使うと、NFAエンジンもどきを作ることができます。 今回のコードは全てCodeRepos上にありますので、試したい方はダウンロードして以下のdiffを適用して下さい。一言で言えば部分集合構成法をやめただけで、他のコードは一緒です。 --- dfareg/__init__.py (revision 25809) +++ dfareg/__init_

    正規表現エンジンを作ろう(5) - Pixel Pedals of Tomakomai
  • 1