タグ

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

  • 正規表現をサッと確認するのに重宝した神サイトを紹介してみる | DevelopersIO

    はじめに こんぬづは、ゲーム用のPCを東京に置いているため、実家に帰ってくるとゲームができなくてしんどい田中です。こういうときに限って、ゲームの実況動画を見てしまったりして余計に心を痛めています。 さて今回は、今年正規表現をサッと確認するのに重宝した Regexper を紹介します。 Regexper こんなサイトです。とてもシンプル。 以下のような特徴があります。 正規表現を図で表示してくれる 表示した図をダウンロードできる 正規表現を図で表示してくれる 入力欄に正規表現を入力して、Displayボタンを押すと、以下の画像のようにその正規表現のパターンを図示してくれます。 どんな範囲でパターンマッチしてくれるのかがとても見やすくなります。 表示した図をダウンロードできる 入力欄の右下にあるDownloadボタンを押せば、表示した図をダウンロードすることができます。 例えば正規表現の仕様を

    正規表現をサッと確認するのに重宝した神サイトを紹介してみる | DevelopersIO
  • 40行以内で正規表現エンジンを構築 | POSTD

    最終目標は、最小限のコードで正規表現ユースケースの大部分をカバーできるくらい十分堅牢な構文を提供することです。 1文字と一致させる まずはじめに、1文字のパターンと1文字で構成される文字列を引数に取り、一致するかしないかを示すブール値を返す関数を作成してみます。1文字のパターンである . はワイルドカードとされ、任意の文字リテラルと一致します。 下記のようなかんじです matchOne('a', 'a') -> true matchOne('.', 'z') -> true matchOne('', 'h') -> true matchOne('a', 'b') -> false matchOne('p', '') -> false function matchOne(pattern, text) { if (!pattern) return true // 任意テキストが空パターンと一致

    40行以内で正規表現エンジンを構築 | POSTD
  • あらゆる日付文字列をよしなに扱うgo-httpdate を書いた | おそらくはそれさえも平凡な日々

    https://github.com/Songmu/go-httpdate Perl界には HTTP::Date という便利モジュールがあります。これは、あらゆる日付文字列を特にフォーマットの指定無しによしなにパースしてくれるもので、クイックハックに非常に有用です。ISUCONでは毎回使っている気がします。 このモジュールは異常な正規表現によって成り立っています。おそらく元々はその名の通り、単にHTTPのための日付フォーマットを扱うモジュールだったのでしょうが、徐々に拡張が継ぎ足されてこのようなモジュールになったのだと想像されます。 で、これをGoに移植しました。以下のように使います。 import "github.com/Songmu/go-httpdate" t1, _ := httpdate.Str2Time("2017-11-11", nil) t2, _ := httpdate.

    あらゆる日付文字列をよしなに扱うgo-httpdate を書いた | おそらくはそれさえも平凡な日々
  • Fluentular: a Fluentd regular expression editor

    Regular Expression Test String Custom Time Format (See also ruby document; strptime) Example (Apache) Regular expression: ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$ Time Format: %d/%b/%Y:%H:%M:%S %z

  • 正規表現からLLVMへのコンパイラを実装する - Qiita

    正規表現技術入門というの中に、正規表現のJITコンパイルという技術が紹介されている。VM型の正規表現エンジンは以前作った1ので、これをLLVMへコンパイルすればおもしろいのではないかと考えて、実行することにした。なお、実装にはScalaを用いた。 追記: また、JVMのバイトコードへJITコンパイルする実験も書きました。 正規表現のJITコンパイラを実装する 正規表現の抽象構文木 VMの実装の時に用いたものと同じく、次のデータ構造を用いる。 sealed trait Regex case object Empty extends Regex case class Let(c: Char) extends Regex case class Con(a: Regex, b: Regex) extends Regex case class Alt(a: Regex, b: Regex) ext

    正規表現からLLVMへのコンパイラを実装する - Qiita
  • Python 3の正規表現で \d を使うな! - Qiita

    案外知られていないようなのですが、Python 3 標準の reモジュールの正規表現では\dがいわゆる全角数字にもマッチします。 実際に試してみます。 >>> import re >>> re.findall(r"\d", "012012") ['0', '1', '2', '0', '1', '2'] >>> \dが'0'、'1'、'2'にもマッチしていますね。 この挙動があまり知られていない原因としては、 Python 3の公式ドキュメントの「正規表現 HOWTO」の説明が、かなり誤解を招きやすい書き方になっている。 \dがいわゆる全角数字にマッチするかどうかをわざわざテストする人は少ない 敬虔なPythonistaは正規表現を使わないやり方を好む傾向がある 等の理由が考えられますが、他の原因もあるかもしれません。 \dを[0-9]にだけマッチさせるには、\dの代わりに[0-9]を使う

    Python 3の正規表現で \d を使うな! - Qiita
  • シークヮーサーとファイアーエムブレムの表記ゆれを正規表現で表す - Qiita

    正規表現を構文図にしてくれるRegexperに通してみます。 Regexper シークヮーサー これで(22+1)422=80通りあります。小さい「ヮ」ってシークヮーサーでしか使わないよねぇ。 追記:ファイアーエムブレムの表記 同様に、任天堂のロールプレイングシミュレーションであるファイアーエムブレムも、正式な表記はこの公式Webサイトの通りですが、発音の関係で表記が揺れるようです。

    シークヮーサーとファイアーエムブレムの表記ゆれを正規表現で表す - Qiita
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回

    こんにちは、久保田です。 皆さん正規表現は使っていますか? PHPに限らずどんな言語を使っていても、正規表現にお世話になっていないプログラマはいないと思います。しかし、その正規表現がどのように実装されているかについては知らない方が多いのではないのでしょうか。 この記事では、その正規表現エンジンの実装方法の一つである仮想マシンによる正規表現エンジンの実装方法を解説しつつ実際に簡単な正規表現エンジンを作っていきたいと思います。 正規表現エンジンの実装方法 正規表現エンジンの実装方法はいくつかあるのですが、それの一つに仮想マシンによって正規表現のマッチング処理を実行するやり方があります。PHPで利用している正規表現エンジンであるPCREはこの方式を採用しています。 仮想マシンによる実装方法は、正規表現というよりもプログラミング言語の実装方法の一つとして知られています。Rubyの最もメジャーな実装

  • 1