タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

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

  • regexpとの付き合い方 〜 Go言語標準の正規表現ライブラリのパフォーマンスとアルゴリズム〜

    こんにちは! エンジニアの臼井です。 この記事は、 eureka Advent Calendar 2016 20日目の記事です。 昨日は、太田さんの angular-cliで始めるAngular2 という記事でした。 今日の記事では、Go言語標準の正規表現ライブラリ、 regexp についてお話します。 稿において使用するGo言語のバージョンは 1.7系とします。 regexp は遅い残念ながら regexp は、PHPRuby 等のメジャーなスクリプト言語の正規表現処理ライブラリと比較して、多くの利用ケースにおいて同等のパフォーマンスとなっています。 他の通常の処理において、Go言語のパフォーマンスは C++ など VM を必要としない実行ファイルを生成する言語と比肩するパフォーマンスがありますが、 regexp はスクリプト言語の正規表現処理と同等あるいはそれより劣る処理時間と

    regexpとの付き合い方 〜 Go言語標準の正規表現ライブラリのパフォーマンスとアルゴリズム〜
  • Luceneで使われてるFSTを実装してみた(正規表現マッチ:VMアプローチへの招待) - Qiita

    入力と出力のペアに対して,上のようなグラフを作るのが目標です.テーブルの出力のとこは数字が書いてありますが,文字列だと思ってとらえて下さい.map だと出力は1つに限られちゃいますが,ひとつの入力に対して出力が複数あってもいいです.たとえば入力 "feb" に対して,出力は "28" と "29" があります.(2月は28日と29日のときがありますね). ノードの部分が状態で,そこから出ている矢印が状態遷移になります.矢印には a/b というラベルがついていますが,a の部分が入力とのマッチを意味し,b の部分がそのときの出力を意味します. 上の例で示すFSTで,"aug"を処理するには,"aug"を頭から読んで,入力"a"に対応するの(9)から(3)への矢印を選択します.そのとき,出力として"3"を記録しておきます.そのあと,"u"に対して(3)から(2)への矢印を選択し,"1"を先ほど

    Luceneで使われてるFSTを実装してみた(正規表現マッチ:VMアプローチへの招待) - Qiita
  • 正規表現エンジンを作ろう (1)

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

    正規表現エンジンを作ろう (1)
  • GoでシンプルなDFA型正規表現エンジンを実装した - もしくはこれ

    ブログを移行しました。 記事は、こちらで読めます。

    GoでシンプルなDFA型正規表現エンジンを実装した - もしくはこれ
  • 正規表現の落とし穴(ReDoS - Regular Expressions DoS) - Qiita

    過去にWordPressを題材にしていろいろな脆弱性のケーススタディを取り上げました。 Webアプリケーションの脆弱性ケーススタディ(WordPress編) Webアプリケーションの脆弱性ケーススタディ(WordPress編その2) 今回は、ReDoS(Regular Expressions DoS)について取り上げてみたいと思います。ReDoSとはOWASPによると以下のように記載されています。 The Regular expression Denial of Service (ReDoS) is a Denial of Service attack, that exploits the fact that most Regular Expression implementations may reach extreme situations that cause them to wor

    正規表現の落とし穴(ReDoS - Regular Expressions DoS) - Qiita
    tjmtmmnk
    tjmtmmnk 2019/07/23
    具体的な事例があってわかりやすい
  • 1