タグ

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

  • 正規表現 - SMART 開発者のためのウェブマガジン

    正規表現の概要 正規表現は、Perlの中で最も重宝する機能のひとつです。正規表現にはテキスト処理のための様々な機能があり、文字列の中から特定のパターンを見つけ出したり、置換したりすることができます。 正規表現の基的な使用方法 たとえば、$strという変数に格納したデータの中から、「A」で始まって途中は何があるかわからないが最後が「E」という文字列を探したい場合、次のように記述することで、条件にマッチする文字列を見つけることができます。 $str =~ /A.*E/; 上記では、ドット( . )が改行以外の1文字を表し、アスタリスク( * )がその任意の文字の0回以上の繰り返しを意味します。このように、正規表現において特殊な働きを持った文字を正規表現演算子、またはメタ文字と呼びます。また、=~ はパターン結合演算子と呼ばれ、「左辺の値から右辺の値を検索する」という意味があります。 正規表現

    正規表現 - SMART 開発者のためのウェブマガジン
  • 99%のEmailアドレスにマッチする正規表現公開される | ソフトアンテナ

    一見Emailアドレスにマッチする正規表現を組み立てるのは簡単そうに思えますが、RFC 5322に厳密に準拠した正規表現を創りだそうとするととんでも無い努力が必要となるようです。 「Email Address Regular Expression That 99.9% Works」は、様々なプログラミング言語ごとに、Emailアドレスに99%マッチする正規表現を掲載したサイトで、例えばPerl 5.10より前のバージョンのPerl用として、掲載されている長大な正規表現を見れば、その難易度の高さを確認することができます。 正規表現にはなんの解説もなくどのような意図をもって作られたのか説明はありません(よって99%マッチするかどうかは当のところは不明)。ちなみに日語で読める貴重な情報「Perlメモ」では、「perl5.6.0以前の perl ではメールアドレスの正規表現を正確に記述すること

    99%のEmailアドレスにマッチする正規表現公開される | ソフトアンテナ
  • 正規表現エンジンを作ろう (1)

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

    正規表現エンジンを作ろう (1)
  • Javascriptによる正規表現まとめ - Y's note

    Index JavaScriptで利用できる正規表現についてまとめました。 最後の後読み、否定後読み以外は利用可能かと思います。 モード修飾子(i,m,g) \n,\r,\u2028,\u2029以外の任意の1文字 空白文字以外( \S ) 数字( \d ) 数字以外( \D ) 先頭( ^ ) 末尾( $ ) 単語区切り( \b ) 単語区切り以外( \B ) 0以上の繰り返し( * ) 1以上の繰り返し( + ) 0または1回( ? ) 最短マッチ( .*? ) nの繰り返し( {n} ) n以上の繰り返し( {n,} ) n以上,m以下の繰り返し( {n,m} ) いずれかの文字( [▲◎■] ) いずれかのパターン( (▲|◎|■) ) 後方参照( \n ) エスケープ( \ ) 先読み( ?=◎◎◎ ) 先読み否定( ?!◎◎◎ ) 後読み( ?<=◎◎◎ ) 否定後読み( ?<

    Javascriptによる正規表現まとめ - Y's note
  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • pyre2を使ってみた | hexacosa.net

    Pythonで使う Pythonでも pyre2 というモジュールが公開されていたので少し使用してみました。 (pyre2は初期の頃はFacebookが開発していたみたい。) インストールは以下です。

    rokujyouhitoma
    rokujyouhitoma 2011/06/30
    名前だけはとどめておく。
  • あまり知られていないけれど、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では正規表現が使えるようになる
    rokujyouhitoma
    rokujyouhitoma 2010/10/19
    その仕様は知らなかった。
  • regex.hの使い方

    C標準ライブラリには正規表現関連の機能は含まれていないので、C言語で正規表現を扱うには何らかのライブラリを利用する必要があります。ここでは、POSIX準拠のregex.hの使用方法を解説します。 UNIXライクなOSなど、POSIX準拠のシステムであれば使用できるはずです。このページのサンプルの確認には、LinuxまたはFreeBSDとgccを使用しています。 使用方法 POSIX正規表現のいくつかの例 コード例と若干の解説 実践的なコード例 使用方法 regex.hでの正規表現の基的な使用方法を簡単に述べると、次のようになります。 regcomp()で正規表現パターンをコンパイル regexec()で実行 regfree()で正規表現パターンバッファを解放 多少面倒なように見えますが、正規表現ライブラリとしてはごく一般的な手順です。正規表現による検索処理の前に正規表現の文字列をコンパイ

  • javascript - λ表記をDSLに : 404 Blog Not Found

    2010年10月02日05:00 カテゴリMathLightweight Languages javascript - λ表記をDSLに 計算論 計算可能性とラムダ計算 高橋正子 クロージャーがある言語には、λ演算がすでに含まれています。 が、たいていの場合、その言語の流儀で書かねばなりません。たとえばこんな風に。 var Z = function(f) { return (function(g) { return function(m) { return f(g(g))(m); }; })(function(g) { return function(m) { return f(g(g))(m); }; }) }; ふつーに Z := λf. (λx. f (λy. x x y)) (λx. f (λy. x x y)) と書けたらよいと思いませんか? λscript(笑) できるようにし

    javascript - λ表記をDSLに : 404 Blog Not Found
  • 正規表現とオートマトン:なんだ簡単じゃん、JavaScriptによる実装 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    先週のエントリー「この機会にマスターしようぜ、正規表現、構文図、オートマトン」において、正規表現とオートマトンの理屈は説明しました。んじゃ、適当な正規表現に対応するオートマトンを作ってみましょう。 非決定性オートマトンはめんどくさいので決定性オートマトンにします。正規表現から作ったオートマトンが非決定性になってしまったときは、がんばって決定性オートマトンに変形するかあきらめるかしてください。 例題となる正規表現とオートマトンは、「Erlang実験室:状態遷移を書くのはこんなに簡単」で使ったものをそのまま流用します。 正規表現: (a, a?, b*, c) 図と表のなかで、EOSは End Of String のマーカー、◎は終状態です 遷移表: 0から3までの各状態について、入力ごとの遷移先は次の通り。×はエラーです。 状態 文字a 文字b 文字c EOS その他 0 1 × × × ×

    正規表現とオートマトン:なんだ簡単じゃん、JavaScriptによる実装 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    rokujyouhitoma
    rokujyouhitoma 2010/07/22
    JavaScriptのコード解説付き。ありがたい。
  • この機会にマスターしようぜ、正規表現、構文図、オートマトン - 檜山正幸のキマイラ飼育記 (はてなBlog)

    正規表現と構文図について解説します。オートマトンについても詳しく述べます。オートマトン・スゴロクで遊びましょう! 世間でよく知られている/使われている概念・方法にはこだわらず、僕(檜山)の感覚で一番わかりやすいと思われる筋書きと用語法/図式法を使って説明します。この記事に目を通して“感じ”が掴めたら、形式言語理論の教科書を読み始めることが出来るでしょう。 [追記]この記事の内容に対する具体例は、「正規表現とオートマトン:なんだ簡単じゃん、JavaScriptによる実装」にあります。[/追記] 内容: 正規表現 正規表現の例 構文図 基記号 連接 選択 省略可能 繰り返し ストレートワイヤーによるレイアウト調整 有限状態オートマトン 有限状態オートマトンの実行 バックトラックと先読み スゴロクとオートマトン コマをたくさん使うスゴロクと並列処理 非決定性オートマトンと決定性オートマトン 正

    この機会にマスターしようぜ、正規表現、構文図、オートマトン - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Katz's Site - 算譜入門: オートマトンの基礎

    以上のような図や表によって象徴される、 状態とその間の遷移が定義された構造を 「状態機械」 と呼ぶ。 各々の状態の意味は考えない。 全く考えないのかといえばそうでもないのだが、 少なくとも理論上は状態として何を持ってきても構わない。 健康状態のように明らかな意味を持つモノを状態とする事もある。 何が何だかさっぱりわからないモノを状態とする事もある。 スゴロクの桝目のようなモノは後者の例と言えよう。 問題を解く為に最も便利なモノを状態として定義すればよい。 少し変わった状態機械の使用例: 虎と羊を連れた人が野菜を運んでいた。 ある所で川を渡る必要が生じた。 舟が一艘あったがとても小さい。 その人が乗るとあとは虎か羊か野菜の内のいずれか一つしか乗せられない。 しかし人が居ない所で虎と羊を一緒にすると虎は羊をべてしまう。 同様に人が居ないと羊は野菜をべてしま

  • オートマトン・形式言語及び演習

    オートマトン・形式言語及び演習 Last modified: Apr.14.2023 07:21. 情報 講義の情報はTACTの講義サイトで提供します. 関連リンク ・ 教科書のサポートページ Last modified: Apr.14.2023 by Masahiko Sakai(mail: sakai at i.nagoya-u.ac.jp).

  • Project Gutenberg のテキストデータから本文を抽出する - 木曜不足

    Project Gutenberg は小説や詩、論文、教養書、演説原稿などなどなど、著作権切れあるいは著作権のないテキストの一大データベース。主にはやはり英語だが、他の諸言語のデータもそこそこある。 このテキストはまるっと自由に使えるので、文章解析などをやるには宝の山。 だけど、肝心のテキストの前後にヘッダやフッタや、とにかく様々な情報がくっついているのが、かなり難。 ある程度書式を決めといてくれれば良かったのに*1、誰もが自由気まま勝手に制作していて、めっちゃフリーダムでアナーキーなことになっている。 区切りのフォーマットがそもそもファイルによってバラバラだし。 そんな区切りもあればいい方で、なんの区切りもなく「誰がスキャンしました」だの「間違ってるかもしれないからチェックしてね!」だの書いてあったり、最悪の場合、それが文と空行1つしかあいてないという。 しかたなくそのまま解析したりな

    Project Gutenberg のテキストデータから本文を抽出する - 木曜不足
  • phpspotの件の続報 | 秋元@サイボウズラボ・プログラマー・ブログ

    phpspotの人は正規表現について語らないほうがいいのではを読まれたようで、記事の更新をされたようだが、まさに予想したとおりのphpspotメソッドとなっている。 僕が気づいた範囲での修正箇所は以下のとおり タイトル先頭に「訂正:」を追加 動作確認はしなかったが目視は行なった。目視ではわからなかったという弁明の追加 紹介された元の英語記事へのリンクの削除 ソースコードに取り消し線 以前いろいろ言われた正規表現の解説ページに、注意書きと他サイトの解説へのリンク 問題の指摘はフォームから受付けるという告知 まず、元英文記事へのリンクを消した理由がわからない。元記事が読まれると何か不都合でもあるのだろうか。 元記事の人もコメント欄でいろいろ叩かれているけど、それに答えてスクリプトを手直ししたりしている。一旦何かについて「知っている」と書いたのであれば、それが正しくなるように努力するのが始めた者

  • 1