タグ

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

  • visual-regexp.el : 【正規表現置換革命】今すぐ導入して置き換えろ!re-builderのように対話的に確認しながら正規表現を構成して置換する

    <2015-04-20 Mon> visual-regexp-steroidsでPerl/Pythonの正規表現にも対応します。 <2015-04-06 Mon> 類似品: phi-search付属のM-x phi-replace-query これはほんとやばいEmacs Lispです! 正規表現置換、使っていますか? もっと早く知っておきたかったと 正直、後悔の念でいっぱいです。 C-M-% (query-replace-regexp)、 この狂気に満ちたキーバインドのコマンドですが、 そのままだと使いづらいですよね。 Emacsの正規表現自体イカれているので、 正規表現に慣れている人であっても 100%正しくマッチさせることはできません。 そこで、M-x re-builderで正規表現を対話的に 構築してから置換するという方法もあります。 しかし、これではわざわざ正規表現をコピーする手

    visual-regexp.el : 【正規表現置換革命】今すぐ導入して置き換えろ!re-builderのように対話的に確認しながら正規表現を構成して置換する
  • プログラミング言語における正規表現リテラルの必要性について

    Twitterに書いたことのまとめです。 プログラミング言語の仕様の一部として正規表現リテラルを提供することの得失について、JavaScriptを例に説明します。 ■より簡潔なコード 言うまでもありませんが、正規表現リテラルを使った方が簡潔なコードになります。 (new RegExp("abc")).exec(s) // リテラルを使わない場合 /abc/.exec(s) // リテラルを使った場合 また、正規表現リテラルがない場合は、文字列リテラルとしてのエスケープと正規表現としてのエスケープが二重に必要になる結果、コードの保守性が低下します注1。 new RegExp("\\\\n"); // リテラルを使わない場合 /\\n/ // リテラルを使った場合 ■エラー検出タイミング 正規表現リテラルがない場合、実際にその正規表現が評価されるまで記述エラーを検出することができません。正規表

  • 正規表現が構文として必要かどうかという話から

    FUJI Goro @__gfx__ dartVMはほんとに速くなったし、標準化はほんとに期待してる。あと正規表現さえ構文に組み込まれればサーバーサイドでも使えますよこれは。 2013-12-15 22:04:54 methane @methane @__gfx__ なんでサーバーサイドで使うのに正規表現が構文で必要なんですか…? PythonGo も正規表現構文無いけど不自由感じないし、むしろリテラルあるとシンプルな文字列操作で良い場面で正規表現を使う悪習が広まるので良くないと思うのですが。 2013-12-15 22:43:35

    正規表現が構文として必要かどうかという話から
  • Haskell で正規表現 (1)

    1. Text.Regex Haskell で正規表現を使うには、Text.Regex を利用する。 Text.Regex.Posix における正規表現は、POSIX regular expression. Uses the POSIX regular expression interface in Text.Regex.Posix POSIX regular expression については、 Rx - Posix Basic Regular Expressions を参照。 POSIX とは Wikipedia によると、 POSIX(ポジックス、Portable Operating System Interface)とは、異なる実装のUNIX OSを始めとする各種OSに共通のAPIを定め、移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的としてIEEEが策定したアプ

  • Haskell の正規表現すげー !! - sirocco の書いてもすぐに忘れるメモ

    効率的なファイル操作、正規表現、ファイル名マッチング (2012/02/18 リンク切れ) 翻訳していただきありがとうございます。 (=~) の型はすごいことになっている。target を指定してtarget型の値を返す。 Prelude> :module +Text.Regex.Posix Prelude Text.Regex.Posix> :t (=~) (=~) :: (Text.Regex.Base.RegexLike.RegexMaker Regex CompOption ExecOption source, Text.Regex.Base.RegexLike.RegexContext Regex source1 target) => source1 -> source -> target Bool 型を指定するとBool 型を返す > "my left foot" =~ "fo

    Haskell の正規表現すげー !! - sirocco の書いてもすぐに忘れるメモ
  • {perl,ruby} -nle 'print if /start/../end/' : 404 Blog Not Found

    2006年12月22日19:00 カテゴリLightweight Languages {perl,ruby} -nle 'print if /start/../end/' アルファギークでも知らなかったというのは、不思議でもあり当然のようでもあり。 naoyaグループ - naoyaの日記 - if /regexp/../regexp/ Perl で正規表現を .. すると、その間に含まれる文字列という意味でマッチさせられる。 % w3m -dump_source http://www.yahoo.com/ | perl -nle 'print if /^<style/../<\/style>/' とするとこれ、実に由緒正しい使い方で、たしかまだperlがhashすらサポートしていない頃からあったと記憶しています。なにしろsed/awkが起源ですから。 NAME operator - se

    {perl,ruby} -nle 'print if /start/../end/' : 404 Blog Not Found
  • 詳説 正規表現 初版 - あどけない話

    先週、Perl の正規表現と Posix の正規表現の違いについて説明する機会があった。端的に言えば、非決定性有限オートマトン(NFA)と決定性有限オートマトン(DFA)の違いだ。 この違いを理解するには、「詳説 正規表現」の「エンジン始動」の章を読むとよい。正規表現の仕組みを車のエンジンに例えて、分かりやすく説明している。技術解説のお手のような文章だ。大学で習う理論と現場での実践が結びつく感激を味わえる。 詳説 正規表現 第3版 作者: Jeffrey E.F. Friedl,株式会社ロングテール,長尾高弘出版社/メーカー: オライリージャパン発売日: 2008/04/26メディア: 大型購入: 24人 クリック: 754回この商品を含むブログ (86件) を見る このが素晴らしいことは、「はじめに」を読むだけでも分かる。以下、私の好きな文章を2つ、初版の「はじめに」から引用しよう

    詳説 正規表現 初版 - あどけない話
  • Emacs Lisp

    正規表現は難しい。 でも、Emacs Lisp の正規表現はもっと難しい。 ここでは Emacs Lisp で正規表現を書くプログラマを混乱させる落とし穴についてまとめる。 バックスラッシュ Perl では、バックスラッシュに合致する正規表現を次のように書く。 '\\' しかし、Emacs Lisp では以下のように書かなければならない。 "\\\\" Emacs Lisp の正規表現が嫌いになる理由はこれだけで十分だ。 しかし、なぜこんなにもバックスラッシュが必要なのだろう? それは、Perl が「リテラル」として正規表現を記述するのに対し、 Emacs Lisp では「文字列」として表記するからである。 Emacs Lisp の関数呼び出しでは、 各引数が「評価」されてから関数に利用される。 もちろん、引数として与えられた文字列も利用前に評価される。 (message "a\tb")

  • 忍者アクセス解析をブロックする - 素人がプログラミングを勉強していたブログ

    Adblock Plus用。 /^http:\/\/\w+\d+\.(?:k(?:a(?:g(?:e(?:(?:nnotuk|bo-sh)i\.com|-t(?:sun|or)a\.com|chiyo\.net)|inawa\.jp)|n(?:(?:-(?:suk|b)e|e-tsugu)\.com|(?:ashibari|paku)\.jp)|r(?:a(?:k(?:uri-yashiki|asa)|matu)\.com|ou\.jp)|c(?:houfuugetu\.net|chaokkana\.com)|ku(?:kaku-sikajika|rezato)\.com|sa(?:buta\.net|jizo\.com)|tsu-(?:yori|ie)\.com)|i(?:(?:(?:modamesh|tuneb)i|risute-gomen|bisuwokaesu)\.com|n(?:

    忍者アクセス解析をブロックする - 素人がプログラミングを勉強していたブログ
    joan9
    joan9 2009/03/30
    [Regexp::Assemble]
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Regexp::Log::Common の使い方を覚えた - @kyanny's blog

    これでもう access_log をパースするときに正規表現をどう書くべきかで悩む必要がなくなった。 普通に LogFormat combined なファイルをパースするときはこれでいい。 my $foo = Regexp::Log::Common->new( format => ':extended', capture => [qw(host rfc authuser date request status bytes referer useragent)], ); my $re = $foo->regexp; my @fields = $foo->capture; while (<>) { my %data; @data{@fields} = /$re/; # do something } ちょっとカスタマイズされた場合もこんな風にして拡張が可能。 my $format = q[%ho

    Regexp::Log::Common の使い方を覚えた - @kyanny's blog
  • Perlメモ/正規表現のコンパイル - Walrus, Digit.

    検索文字列で、ワイルドカードとして"*"を使用できるという記法をよく見かけます。 以下のサブルーチンは、この記法で指定された、1つあるいは複数のマッチング文字列に相当する正規表現を返します。 sub make_wildcard_regex { my @keys = @_; return undef unless (@keys); my $pattern = join('|', map { s/([^\*]+|\*)/$1 eq '*' ? '.*' : "\Q$1\E"/ge; $_; } @keys); return qr/$pattern/; } 以下はこのサブルーチンを使用するサンプルです。 my @urls = ( 'http://digit.que.ne.jp/', 'http://digit.que.ne.jp/index.htm', 'http://digit.que.ne.

  • 正規表現愛

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

    正規表現愛
  • txt2re 文章から対話的に正規表現を作れる支援サービス

    一週間のうちにいくつも正規表現のツールが話題になるのは、正規表現で悩むプログラマが多いということだろう。また面白いサービスが出てきた。 txt2reは、テキストボックスに入れたテキストを分解し、そこからどんな正規表現が作 […] 一週間のうちにいくつも正規表現のツールが話題になるのは、正規表現で悩むプログラマが多いということだろう。また面白いサービスが出てきた。 txt2reは、テキストボックスに入れたテキストを分解し、そこからどんな正規表現が作りたいのかを推測して提案してくれるというサービス。 サンプルで入っているテキストでは、日付(の英語表現)のあとに引用文で英文、という入力。 入れたものが要素ごとに分解された上で、まとまった部分が「文字列」なのか「月」なのか「アメリカの州」なのか、といった推測がされて、選択肢としてリンク表示される。 「ここは月のつもりだった」ということでMonthを

    txt2re 文章から対話的に正規表現を作れる支援サービス
  • Regexp - Regexp::Commonを引くAPI : 404 Blog Not Found

    2007年10月17日17:00 カテゴリLightweight Languages Regexp - Regexp::Commonを引くAPI Mastering Regular Expression Jeffrey Friedl [邦訳: 詳説 正規表現] そういうことを防ぐにはどうしたらよいか、と考えて作りました。 秋元@サイボウズラボ・プログラマー・ブログ: phpspotの人は正規表現について語らないほうがいいのでは この人、以前にも正規表現のいいかげんな記事を書いていろいろ突っ込まれている。まずは実例から。 Server Source 何をしているかというと、Regexp::CommonをJSONPで引いているのです。このRegexp::Commonは、実際に使用され配布されている正規表現集としては最も実績のあるものの一つですが、そのままではPerlでしか使えないのでこうしてみ

    Regexp - Regexp::Commonを引くAPI : 404 Blog Not Found
  • 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

  • regexp - (?=lookahead) and (?<=lookbehind) assertions : 404 Blog Not Found

    2007年05月01日01:45 カテゴリLightweight Languages regexp - (?=lookahead) and (?<=lookbehind) assertions Mastering Regular Expression Jeffrey Friedl [邦訳: 詳説 正規表現] つっこみの方はちょっと後回しにして... odz buffer - 正規表現の否定 #2 とりあえず、dankogai さんあたりがツッコミを入れてくれると期待。 まずはこちらから。 Unknown::Programming - 文字列の先頭がある単語で始まらない正規表現って qr/^(?:(?!foo).)+.*/ でいいのかなぁ・・・? LookbehindLookahead Positive(?<=expression)(?=expression) Negative(?<!exp

    regexp - (?=lookahead) and (?<=lookbehind) assertions : 404 Blog Not Found
  • 404 Blog Not Found:perl - Regexp::Assembleのススメ

    2007年04月19日15:00 カテゴリLightweight Languages perl - Regexp::Assembleのススメ というわけで、Regexp::Assembleのご紹介。 PERL HACKS(日語版) [英語版] odz buffer - それ Regexp::Assembleん?ループ云々を抜きにして、こういうのは Regexp::Assemble の出番じゃないの? すでにPerl Hackers御用達のモジュールとなっていますが、まだ知らない方もいらっしゃるかも知れないので。 何をするモジュールか、といえば、以下を見れば一目瞭然でしょう。 Regexp::Assemble - Assemble multiple Regular Expressions into a single RE - search.cpan.org use Regexp::Asse

    404 Blog Not Found:perl - Regexp::Assembleのススメ
    joan9
    joan9 2007/04/24
    Regexp::Assemble
  • 本邦初公開!電話番号の正規表現 - にぽたん研究所

    近年「邦初公開」って表現、あんま使わないすね。。。 さて、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 演算子を使ったために付加される「クロイスタ」です。 この結果に対しては、クロイスタは別に無くても構わないので、実質 [

    本邦初公開!電話番号の正規表現 - にぽたん研究所
    joan9
    joan9 2007/04/07
    Regexp::Assemble
  • 二度目の公開!電話番号の正規表現 : にぽたん研究所

    ※ 二度目の公開というタイトルにしましたが、三度目は予定していません。 2 年ぐらい前に、邦初公開!電話番号の正規表現というネタで、Regexp::Assemble という CPAN モジュールを紹介したことがありました。 あのモジュールを使うことによって、日で初めて、電話番号を正規表現で表わすという試みをしてみたのですが、該当エントリに書いた通り、 Number::Phone::JP の正規表現が今日現在でも正しいのかどうか等、未検証部分が異常に多いので、自己責任でお使いくださいw というものでした。 その後、Number::Phone::JP モジュール自体も、更新が面倒臭そうなものなせいか、全然更新されていなかったのですが、何やら今日更新版が出ている模様。 どうも作り直したっぽいかんじ。 で、早速ですが、最新版の正規表現テーブルを用いて、最新版の電話番号にマッチする正規表現を作っ

    二度目の公開!電話番号の正規表現 : にぽたん研究所