NameBright.com - Next Generation Domain Registration complang.org is coming soon
最近ローソンでお菓子をたくさん買った田中です。 近頃読んで面白かった論文を紹介したいと思います。 A Play on Regular Expression 今年のICFPでFunctional Pearlとして発表されたものです。ICFP(International Conference on Functional Programming)というのは、関数プログラミングに関する国際学会で、Functional Pearlというのは、エレガントでためになる、関数プログラミングのテクニック集です。 この論文ではまず、正規表現マッチャを関数型言語(Haskell)でいかにエレガントに記述できるかが示されます。それから、エレガントさを保ったままの線形時間実装へ改良し、その実装がC++によるプロフェッショナルな実装(具体的にはGoogle re2)に匹敵するパフォーマンスを示すことが示されます。さら
InDesignを使って正規表現の基礎と実例が学べるテキストです。EPUBフォーマット*1になっていますので、多くのEPUBリーダー上で閲覧できます。 目次 目次は以下のとおりになっています。 InDesign者のための正規表現入門 はじめに 基礎編 正規表現とは何か? 正規表現で何ができる? ■初めての正規表現検索 メタ文字とは? メタ文字を攻略する ■文字を表すメタ文字 ■位置を表すメタ文字 ■繰り返しを表すメタ文字 ■その他のメタ文字 ■メタ文字をそのものを表すには 「先読み」と「戻り読み」テクニック ■先読み ■戻り読み ■補足 陥りやすい罠 ■欲張りなマッチ ■否定文字クラス ■方言 正規表現の考え方 正規表現スタイルについて InDesign独自の正規表現 ■独自のメタ文字表現 ■改行文字 ■全角半角の区別 ■POSIXブラケット表現 実技編 マーキング済みのテキストに段落スタ
改訂:2017/07/22 Unicode 10.0に合わせて書き直し。正規表現を簡易にしようとしてやりすぎていたのを修正。 改訂:2023/03/21 U+30000以降を追加。InDesignの正規表現を追記。 正規表現で漢字の範囲指定をする場合、Unicodeではどうするかが悩ましいところです。 Unicodeの漢字の範囲として [一-龠] にしている例を見かけます。しかしこれは旧規格JIS X 0208の漢字が含まれる範囲をUnicodeの中から切り出しているだけです。互換漢字ブロックをまるごと取りこぼしているので、WindowsのシフトJIS(CP932)の拡張漢字に当たるものが含まれていません。現規格JIS X 0213の第3・第4水準漢字も考慮されていません。簡易な範囲指定だとしても、新常用漢字の「𠮟」が含まれておらず、今から見るとあまりに時代遅れです。 Unicodeのす
といつも思うので、自分用にメモすることで覚えようという魂胆です。 以下はInDesign CS4の正規表現について記述します(たしかCS3から使えたような気がする)。 結論から 名前 英語で 位置 演算子 後読み lookbehind マッチパターンより前の部分 (?<=) 肯定 (?<!) 否定 先読み lookahead マッチパターンより後の部分 (?=) 肯定 (?!) 否定 肯定の場合はパターンの前が「=」、否定の場合は「!」。 英語を見ると「後読み」「先読み」の訳語も納得できそうな気はするのですが、やっぱりわかりにくいです。背後と前方……とか言うとまた混ざるし! 「つぎの電車」と「こんどの電車」はどっちが早く発車するかみたいな感じに似ていますな。 別に演算子さえ覚えてしまえば名前は意識しなくてもよさそうなのですが、せっかくInDesignには正規表現の記述支援機能がついてるので
Regular expressions are great, but they're a bit unwieldy. There's a well-known quote about regular expressions that goes like this: Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems. I think of it whenever I try to tackle something using regular expressions, but most of the time, I spend more time wrestling with the regular expr
近年「本邦初公開」って表現、あんま使わないすね。。。 さて、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 演算子を使ったために付加される「クロイスタ」です。 この結果に対しては、クロイスタは別に無くても構わないので、実質 [
Expresso is useful for learning how to use regular expressions and for developing and debugging regular expressions prior to incorporating them into C# or Visual Basic code. Expresso Build complex regular expressions by selecting components from a palette Test expressions against real or sample input data Display all matches in a tree structure, showing captured groups, and all captures within a g
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く