Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
といった感じ。ちなみにjava.util.regexとPerlのUnicodeブロックは接頭子Inを使うが、.NETの場合は接頭子Isを使う、という差異があります。 Unicodeスクリプトとブロックの違いがビミョーに見えるけど、ブロックがコードブロックをゴリッと指定したものに対して、スクリプトは特定言語に関係する文字の種類を直接指定するものなのでブロックよりも断定的、って感じで見れば良かなと。ちなみにUnicode関連のドキュメントによるとUnicodeプロパティとスクリプトで日本語の文章を表そうとすると m/(?:(?:\p{Hiragana}|\p{Katakana}|\p{Han}|\p{Latin}|\p{Common}) (?:\p{Inherited}|\p{Me}|\p{Mn})?)+/x; こんな感じになるそうな。実際流通している文章はこれより多様なので現実とは微妙に乖離
CocoaOniguruma は、プロジェクトに直接組み込むソースファイル形式で配布しています。 core ディレクトリを CocoaOniguruma にリネームして、プロジェクトディレクトリにコピーしてください。 Xcode でプロジェクトを開き、 .h、 .c、 .m ファイルを Classes 配下に追加してください。 以下のようにヘッダファイルを import すると、正規表現を使えます。 #import "OnigRegexp.h" core ディレクトリと同じ階層にある framework ディレクトリを使います。 フレームワークのプロジェクトを Xcode で開き、ビルドします。 Release ビルドになっていることを確認してください。 build/Release/CocoaOniguruma.framework を、自分のプロジェクト配下にコピーします。 自分のプロジェ
2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&}{&}gso; $str =~ s{<}{<}gso; $str =~ s{>}{>}gso; $str =~ s{\"}{"}gso; $str; } これの最初のsubstitutionが&ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ
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
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
※ 二度目の公開というタイトルにしましたが、三度目は予定していません。 2 年ぐらい前に、本邦初公開!電話番号の正規表現というネタで、Regexp::Assemble という CPAN モジュールを紹介したことがありました。 あのモジュールを使うことによって、日本で初めて、電話番号を正規表現で表わすという試みをしてみたのですが、該当エントリに書いた通り、 Number::Phone::JP の正規表現が今日現在でも正しいのかどうか等、未検証部分が異常に多いので、自己責任でお使いくださいw というものでした。 その後、Number::Phone::JP モジュール自体も、更新が面倒臭そうなものなせいか、全然更新されていなかったのですが、何やら今日更新版が出ている模様。 どうも作り直したっぽいかんじ。 で、早速ですが、最新版の正規表現テーブルを用いて、最新版の電話番号にマッチする正規表現を作っ
ぶくま経由で、RFC 3986 URI の日本語訳にたどり着き、読んでいました。スムーズな日本語ですんなりと読めて、良い訳だと思いました。私は誤訳を見つけられませんでした。 それはともかく、読んでいる最中に、RFC3986 だけではないのですが、IPv4 アドレスの数字にマッチする構文が、正規表現向けでないのに改めて気になりました。RFC の記述をそのまま正規表現にすると、バックトラックをおこす書き方になっています。 バックトラックがおきないようにするには、先頭から1文字ずつ見ていくだけで残りの選択肢のどれに進めばいいか決定できるようにすればよろしい。ということで、これをテスト駆動で正規表現に向いた記述に変更してみました。 ⇒ http://www.studyinghttp.net/cgi-bin/rfc.cgi?3986#Sec3.2.2 IPv4address = dec-octet
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
http://qootas.org/blog/archives/2006/06/perl_regex_perf.html 正規表現でパイプ("|")を使うとめちゃくちゃ遅くなるってことだけどこれって程度によるみたいね。 「コレかコレかコレにマッチする」みたいな正規表現を書くときにパイプ使うのがダメであって、ちょっとでも複雑な正規表現になるとパイプ使っても使わなくても大差無いっぽい。 ってか試してみたらむしろ遅くなった。 # コードは元記事のやつを拝借させてもらいました。 use Benchmark; my $text = ';lskjdf;klvckxv;zijxcv;oa;vlkaefiuqewizlkvnzlxkcnv' . '.z,xmc v/z.x,cmv.z,xnvlafda isjdnfl aksjdfauerfaie' . 'jnlfakjdsn;akj;v akjdfvoa
Regexp::Trieにさわってみた にわかににぎわっているはてなキーワードを高速に付与なのですが、dankogaiさんのRegexp::Trieをちょっとさわってみた。 Trieを利用したRegexpのオプティマイズという理解で間違っていないですよね。 #キーワードリスト my @src = qw(1U 2ch amazon apache apple atom blog cdbi CentOS cgiapp colinux cpan csrf css dashboard db firefox flash foaf ftp google hacker hard httpd intrablog ipod); my $rt = Regexp::Trie->new(); map{$rt->add($_)} @src; my $regexp = $rt->as_regexp; print $re
2005年09月11日07:06 カテゴリLightweight Languages TRIE-Optimized Regexp これをPerlで直接使えたらうれしいよね>おおる きまぐれ日記: はてなキーワードを高速に付与 そこで、はてなキーワードを TRIE を使って付与するプログラムを作ってみました。 というわけで、やってみました。 最初はDartsのXSを作ろうとしたのだけど、どうもtemplateばりばりのC++コードとXSは相性が悪い。でもTrieを作るだけなら、Perlでもそこそこ出来るし、実際Regexp::OptimizerやRegexp::Assembleのようなモジュールもある。ただこれらはTrie以外のOptimizeもしてしまうので、ちょっと重たいというわけで、mk_trie_regexp.plというScriptをサクっと書いてみました。 使い方は簡単。/usr/
弊社には、アンチ正規表現の人がいますが、私は熱烈な正規表現 Lover である。 大崎氏の「Perl 正規表現雑技」とかは、正規表現 Lover 垂涎のコンテンツとして、ブラウザのリンクバーに入れている程である (嘘)。 正規表現は覚えてモノにすれば、シアワセになれる素晴らしい仕組みなのです。 昨日、Shibuya.pm のテクニカルトークに行った際「はてなでは XML 系の CPAN モジュールはあまり使っておらず、XML の parse には殆んど正規表現を使用している」という話が出てきて、嬉しさのあまり身震いした。 parser を書くのが面倒臭くて「XML::Simple 最強」とかホザいた自分に対しての自戒と、弊社の Chief Regular Expressioner という肩書を持つ (自称) 立場の人間として、たまには、正規表現ゴリゴリなネタでも書いてみようかなと思いますた
\x{} \pは後続する名前が表すクラス(プロパティ、スクリプト、ブロック)に属する文字にマッチし、 \Pは後続する名前のクラスに属さない文字にマッチします。 クラスの名前が一文字のときはブレースを省略できます。 クラス名の前に^を置くことにより否定形の指定を行うことも可能です。 Perl 5.8 での変更点 Perl5.8以降(5.6でも使えたようですが)では \pや\Pで始まるプロパティ指定に標準Unicode属性を使うこともできます。 詳しくは perlunicode perlunicode - Perl における Unicode サポート を参照してください。 日本語による説明が Unicodestandard にもあります。 Perl 5.8以降ではユーザーが任意のプロパティを作成することができます (IsまたはInを必ず前置)。 詳しくは perlunicode perluni
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く