Emacs で正規表現を使うならば re-builder を使うことをおすすめします。 例えば、正規表現を良く使うシチュエーションとして置換があります。 M-x replace-regexpで置換対象文字列を正規表現で指定し、何に置換して欲しいかを指定するわけです。 行頭に // を追加してソースをコメントアウトしたいのであれば M-x replace-regexp Replace regexp: ^ ← ^ を入力 Replace regexp ^ with: // ← // を入力のように置換をします。(この場合は、comment-region が最適解ですが) 例に挙げたような簡単な正規表現であれば、間違いようもなく問題ないのですが、ちょっと複雑な置換になると話は変わります。 以下のようなコードがあるとしましょう。 byte* buf = new byte[32]; unsigned
Latest topics > 正規表現のパターンを得るためのアルゴリズム 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! « XUL/Migemo [Forked Edition] 0.4.0、もはや別物 Main XUL/Migemo使い方チュートリアル » 正規表現のパターンを得るためのアルゴリズム - Dec 02, 2006 XUL/Migemoの動作の中で一番のネックになっているのは「辞書から正規表現のパターンを生成する」処理だそうで、そのために、本家XUL/Migemoでは200KB近いキャッシュファイルまで用意されていた。plus7さんの環境では一文字のパターンに対するキャッシュを生成するのに14秒もかかった(その間Mozillaはフ
複数のプロセスでロック状態が異常であると判断し,そのうちの 1つがロックを解除したことにより,別のプロセスがロックしたにもか かわらず,先ほどロック状態が異常であると判断したプロセスによってこの正常なロッ クを解除されてしまう可能性があります. この方法の問題点は,異常なロック状態を解除する操作が正常なロック状態をも 解除できてしまうことにあります.逆に言えば,異常なロック状態を解除する操作に よって正常なロック状態を解除できなければ問題ないわけです.そのためにはどうす ればよいのか? 答えはロック状態が常に変化していけば よいということです.そして,これを実現するのに都合がよいのが rename による方法になります. 最初のスクリプトで説明しますと,ロックファイルが lockfile という 名前のときがロックが解除されている状態で,lockfile987654321 のよう に後ろに
本ドキュメントは Pythonのライブラリマニュアルlibre.texの内容を 元にして作成されています。 正規表現の構文 正規表現(RE)は、それにマッチする文字列の集合を特定します。本モジュール 中の関数は、特定の文字列が与えられた正規表現にマッチするかどうか(あるい は与えられた正規表現が特定の文字列にマッチするかどうか)を検査します。 新しい正規表現を構築するために、正規表現を連結することができます。A と Bの両方が正規表現であるとき、AB もまた正規表現です。あ る文字列 pがAにマッチし、別の文字列 qがBにマッチするので あれば、文字列 pqはABにマッチします。したがってここで説明したよ うに、複雑な正規表現は単純な正規表現から簡単に構築することができるので す。正規表現の理論と実装に関する詳細は、後述するFriedl の本を参照するか、 コンパイラー作成に関する教科書を
正規表現の外側にコメントを付ける 通常のPerlのコメントを使って、あなたが何を、どのようにしているかを説明します。 # 行を、その最初の単語、コロン、行の残りの文字数に # 変換します s/^(\w+)(.*)/ lc($1) . ":" . length($2) /ge; 正規表現の内側にコメントを付ける /x 修飾子は、正規表現中にある空白を無視するようにし、 (キャラクタクラスの中にあるものを除く)、通常のコメントが使えるようにします。あなたの想像できるように、空白とコメントは非常に助けに なります。
NAME DESCRIPTION Part 1: The basics Simple word matching Using character classes Matching this or that Grouping things and hierarchical matching Extracting matches Matching repetitions Building a regexp Using regular expressions in Perl Part 2: Power tools More on characters, strings, and character classes Compiling and saving regular expressions Embedding comments and modifiers in a regular expre
\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
正規表現は難しい。 でも、Emacs Lisp の正規表現はもっと難しい。 ここでは Emacs Lisp で正規表現を書くプログラマを混乱させる落とし穴についてまとめる。 バックスラッシュ Perl では、バックスラッシュに合致する正規表現を次のように書く。 '\\' しかし、Emacs Lisp では以下のように書かなければならない。 "\\\\" Emacs Lisp の正規表現が嫌いになる理由はこれだけで十分だ。 しかし、なぜこんなにもバックスラッシュが必要なのだろう? それは、Perl が「リテラル」として正規表現を記述するのに対し、 Emacs Lisp では「文字列」として表記するからである。 Emacs Lisp の関数呼び出しでは、 各引数が「評価」されてから関数に利用される。 もちろん、引数として与えられた文字列も利用前に評価される。 (message "a\tb")
このページは Perl5.6 を対象としています. perl スクリプトは EUC-JP で書かれることを想定しています. このページは 正規表現メーリングリスト を参考に,私が独自にメモとしてまとめたものです. このページの正規表現やスクリプトについての詳しい説明, わかりやすい説明はおそらくできません. このページに書かれているスクリプトは, 個人の責任において実行してください. このページに書かれているスクリプトの 利用・改造は自由 です. その際はどこかにこのページの URI( http://www.din.or.jp/~ohzaki/regex.htm )を参考として記述していただければ幸いです(任意). ご意見・ご感想・ご要望などは にお願いします.こう書いた方がいい, 動かん,わからん,バグってる,これ書け,などなどお待ちしています. このページへの リンクは自由 に張ってく
正規表現の中でも影の薄い先読みですが、使いようによっては非常に強力な道具になります。 数字を三桁ごとに区切ってコンマを挿入したい場合を考えましょう。 例えば"1234567890"という文字列を"1,234,567,890"に置換したいわけですね。 結論から言うと、これを行うには以下のようにします。 text = "1234567890" puts text.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, '\1,') おそらく訳が分からないと思いますので、順を追って説明していきましょう。 まずおさえておいてほしいことは「先読みは文字列がマッチしているかどうかは調べるけれども、マッチポインタは進めない」ということです。 もし上の例で、先読みを用いずにtext.gsub(/(\d)(\d\d\d)+/, '\1,')と置換しようとしたとしましょう。 すると、最初の(\d)が"
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く