タグ

regexに関するm4iのブックマーク (16)

  • パフォーマンスを意識して正規表現を書く - Shin x Blog

    正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。PerlRubyPythonJava、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ

    パフォーマンスを意識して正規表現を書く - Shin x Blog
    m4i
    m4i 2016/08/23
  • Vim-users.jp - Hack #75: 正規表現で先読み/後読みを使用する

    m4i
    m4i 2009/09/22
  • Vim-users.jp - Hack #70: 正規表現でマッチする範囲を制限する

    m4i
    m4i 2009/09/10
  • PHPでマルチバイト対応のtrim関数を作る - hnwの日記

    (2009/06/29)追記4:記事のmb_trim関数が動かない環境があったので、詳細を「PCREはUnicode文字プロパティをサポートするとは限らない」にまとめました。よりポータブルなmb_trim関数も紹介していますので、併せてご覧ください。 追記:「mb_ereg_match('^[\0[:space:]]+$', $str);」で、今回pregで作った正規表現'/^[\s\0\x0b\p{Zs}\p{Zl}\p{Zp}]+$/u'と同一になりました。mb_regex_encoding関数が使える分だけmb_ereg版の方が使い勝手も上です。ちょっとショック。 (2009/02/24 17:00)追記2:もっと簡潔に、「mb_ereg_match('^[\0\s]+$', $str);」でいいことがわかりました。POSIX正規表現風の表記がキモいな、と思っていたので、これは素晴

    PHPでマルチバイト対応のtrim関数を作る - hnwの日記
  • strfriend

    jokergaming สล็อตออนไลน์ที่มาแรงที่สุด เครดิตฟรี jokergaming สล็อตออนไลน์ที่มาแรงที่สุด เครดิตฟรี 100 ไม่ต้องฝาก ในวันนี้ทางเว็บไซต์ของเรา จะขอเสนอข้อมูล เกมสล็อตฟรีเครดิต 100 แบบไม่ต้องฝาก แบบไม่ต้องแชร์ เชื่อเลยว่า มันคือหนึ่งในคำถาม ที่นักพนันมือใหม่บนัสเครดิตฟรี จากเว็บตรงนั้น สามารถถอนได้จริง ๆ แล้ว โดยเรา ทำการสมัครสมาชิกกับเว็บ และเป็นการเปิดโอกาส ให้กับผู้เล่นใหม่ ๆ ได้เข้ามาทดลองเล่นเกม เ

    m4i
    m4i 2008/12/04
  • 正規表現エンジンを作ろう (1)

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

    正規表現エンジンを作ろう (1)
  • 正規表現ベースの字句解析器を書くときは - 最速チュパカブラ研究会

    正規表現ベースの字句解析器を書くときは、narcissusというJSベースのJS処理系のコードを見るといいです http://mxr.mozilla.org/mozilla/source/js/narcissus/jsparse.js 面倒な正規表現の模範解答が載ってます。下手に自分で考えて誤爆するより、一流の人が書いたものを使いましょう 正規表現リテラル /^\/((?:\\.|[^\/])+)\/([gimy]*)/ 文字列(ダブルクォート、シングルクォート共)/^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/ → 訂正 Cスタイルコメント(一行、ブロック共) /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/ ↓narcissusについてはyukobaさんのプレゼンを(去年のShibuya.es) http://accelart.jp/shibuyajs

  • HTML4 用の CSS property と keyword の正規表現 - Tociyuki::Diary

    昨日の続きで、安全な style アトリビュートにマッチする関数へ渡す、W3C の CSS2.1 Specification で定められた property と keyword にマッチする正規表現を生成してみました。それぞれを Specification からかき集めて、dankogai さんの最適化正規表現作成ツール http://www.dan.co.jp/~dankogai/cgi/hatenize/ の mk_trie_regexp.pl をちょっといじったものに通して、できあがり。 ⇒ https://tociyuki.sakura.ne.jp/archive/CSS-HTML4-Visual.pm Perl ライセンスです。 なお、集め出すときりがないので、オーラル関連は省略しました。フォント・ファミリー名は serif、sans-serif などの generic-fami

    HTML4 用の CSS property と keyword の正規表現 - Tociyuki::Diary
  • 正規表現講習会(その2)を開催しました

    社内勉強会として、「他人の正規表現を読もう」と題して正規表現講習会の第二回を開催しました。「こんな正規表現があるよね」という情報共有のような回でした。きっと退屈な人も居ただろうと思います。基的にはマニュアルに書いてあるようなことばかりなのですが、社内で「この正規表現なら全員が読めるはず」という線引きをする試みです。もし「何であれが入ってないの?」などあれば教えてください。 ムービー 発表資料 スライド(PDF) この回の内容を要約すると「man perlre」に尽きるような気がします。万一これを知らないと誰かがまとめた二次情報に当たることになってしまいますので、いつまでたっても正規表現に対する苦手意識が解消できない気がします。もしくは、手近にあれば「青ラクダを開く」でもいいんですけどね。

    m4i
    m4i 2008/02/14
  • re: PHP でメールアドレスかどうか調べる方法

    はてブでotsuneさんやkazuhookuさんがPHPクオリティについて勘違いしていたので、一言申し上げたところ、参考にされた方がいたようで、もうちょっと補足します。 いくつか実装での「正しいメールアドレス」を調べてみました。 phpspot function is_mail($text) { if (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$text)) { return TRUE; } else { return FALSE; } } PEAR::Mail_RFC822 function isValidInetAddress($data, $strict = false) { $regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+¥.)+[0-9a-z]{2,})$/i'

    m4i
    m4i 2007/06/02
  • 「すべての漢字を取り出す正規表現」をPHPで試す、を正しく行う:phpspot開発日誌

    Information Flow and Stock: [PHP] mb_ereg()じゃない、preg_match_all()に/uをつけるんだ! なので、できる限りpreg系の関数を使いたいわけですが、検索対象や検索パターンに日語が含まれているときは、日語処理に対応したereg系の関数であるmb_ereg系の関数が使われることが多いようです。 以前、「すべての漢字を取り出す正規表現」をPHPで試す、を正しく行う方法。 以前はmb_eregによる方法を示しましたが、次の方法の方がうまく動作するようです。 preg_match_all('/[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+/u', $strToSplit, $aMatches); print_r($aMatches); // マッチ結果が全出力 確かに、なぜか取れない漢字があ

    m4i
    m4i 2006/12/13
  • html2regexp - html2regexpはHTML要素を抽出する正規表現を自動生成するツール

    借金をしたときには、必ず返済しなければなりません。 多くの人がそのまま頑張って返さなければと考えがちですが、賢い借金返済方法を取ることでより楽に返せるようになるのです。

    m4i
    m4i 2006/10/22
  • http://www9.ocn.ne.jp/~ymt/perl6/rules.html

  • AJAX Reguler EXpression eValuator

    EnglishBulgarian

  • 満足せる豚。眠たげなポチ。:2005年の技術的なトレンドに乗り遅れないための5つのテーマ

    年の暮れだからこそ、今年の技術的なトレンドへ乗り遅れないように復習をしたいもの。 Web2.0が脚光を浴びた2005年。とりあえずこの5つの分野から苦手分野をきっちり潰していきたいと思います。(多分にぼくの偏見と苦手分野の重視が影響している点はご了承ください。) Ajax Ruby on Rails HTML/CSS Javascript 正規表現 ということで、おすすめの書籍やサイトを総括。 Ajax 2005年はこれしかないでしょう。も杓子もAjaxと連呼した年でした。 Ajax: Web アプリケーション開発の新しいアプローチ http://antipop.gs/docs/translations/ajax.html これがなくちゃ始まらないですから。 Ajaxの質、「非同期メッセージ型ウェブ・アプリケーション」のススメ http://satoshi.blogs.com/life

  • すべての漢字を取り出す正規表現 - totonのブログ

    http://www.unixuser.org/~euske/doc/python/sample.py.html # 日語トークンを切り出すための正規表現。 JP_TOKEN = re.compile(u"[一-龠]+|[ぁ-ん]+|[ァ-ヴ]+|[a-zA-Z0-9]+") http://www.ascii.co.jp/pb/ascii/archive/aftercare/1999.html [亜-煕]はJIS漢字を検出するときに使う正規表現になります。 文中で触れている「一太郎 Lite2」の正規表現はUnicode仕様なので,すべての漢字を検出するには,[一-龠]を使用してください(龠は音読みで「ヤク」,訓読みで「ふえ」,Unicodeでは「9FA0」にあたります)。 追記 ※「すべての漢字を取り出す正規表現」については、id:toton:20051105 に記事を追加しました。

    すべての漢字を取り出す正規表現 - totonのブログ
  • 1