ある正規表現に対して、特定の文字列がマッチするかどうかをチェックするツールやサイトは沢山ありますが、正規表現そのものが何を意味しているのか、どんな文字列を期待しているのかを解析・解読・説明してくれるツールやサイトってなかなか見ない気がします。 他人の書いた正規表現を見て、「ん?」ってなったことはありませんか? 例えばこれ。 1 ^[a-zA-Z0-9-_.]@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ これくらいなら分かりますが、複雑になってくるとつらい… いつかはマスターしたいけど…今は楽したい。 そう思ってググってみると…ありました! それがこちら。 Regexper http://www.regexper.com/ 正規表現を入力して Display をクリックすると、その正規表現が表す内容を図にして表示してくれます。 例えば先程の正規表現は、当記事の一番上の
emacsで正規表現による置換を結構快適に使えるようになったので記録しておきます。 emacs標準コマンドのM-x replace-regexpは拡張正規表現と呼ばれる構文に対応していないので、スクリプト言語等で使用できる正規表現よりも機能が低く使いにくいのが問題でした。 結論を先に書きますと、以下手順でemacsから快適に正規表現による置換を行えるようになりました。 .zshrcに[[ $EMACS = t ]と書いてemacsから使用するシェルをzshに設定し .zshenvにsetopt RC_QUOTESと書いて’のネストを許可し、 M-!やM-|から実行したコマンドの履歴もシェルと共有して emacs上でC-u M-|からperl -nle ‘パターン;print’で置換 さて、始まりは前の職場の人のperlの正規表現は凄いという発言です。 その時はあまり興味が無かったのですが、
正規表現にはいくつかの修飾子が用意されています。ここれでは Ruby の正規表現で利用可能な修飾子の種類と指定方法について解説します。
はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 本記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表
「前のエントリで書き忘れてた - 最速チュパカブラ研究会」にて、Narcissus で使われている正規表現が参考になるという話が出ています。 文字列リテラル /^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/ 正規表現リテラル /^\/((?:\\.|[^\/])+)\/([gimy]*)/ コメント /^\/(?:\*(?:.|\n)*?\*\/|\/.*)/ 一流の人が書いたものを使いましょうというのに異を唱えるつもりはありませんが、そのままコピー & ペーストしていては意味がありません。ここはやはり一文字一文字心をこめて写経しましょう……ではなく、どうしてその書き方でうまくいくのかをきちんと考えた上で使いましょう。 文字列リテラルにマッチする正規表現 上記の文字列リテラルを表す正規表現から、一重引用符でくくられた文字列にマッチする部分だけを抜き出すと '(?:[^
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 6年ぶりの大きなアップデートとなったEmacs 22.1、CVS先端の開発バージョンを使っているユーザは、なんとなく見過ごしてしまっているかもしれないが、新しい機能には便利なものが多い。ここでは、特に強化された置換機能について取り上げる。使いこなせば強力なので、是非使ってみて欲しい。 replace-regexpがプログラマブル置換へとパワーアップ Emacsではreplace-regexpで正規表現置換ができる。現在主流となっている正規表現のスタイルはPerlに源流をおいたものが多いが、Emacsの正規表現はそれとは異なる。特に\( \)の表記などが独特だ。とはいえ、Emacsを愛しているならば、馴れるしかないだろう。書き方が違うだけ
本当にやりたいことは、 型から、その型を持つようなRubyプログラムを生成するなんだけど(というかこれはHaskell界隈の人が喜んでやってるやつだよな、つまんね)、とりあえず正規表現で考えてみてた。 正規表現は有限状態オートマトンになるわけで、ループがあるとやだなぁ、とか考えてたんだけど、研究室の後輩(オートマトン屋さん)に相談してみたら、少なくとも正規表現に限定してしまえば簡単になると言われた。確かに、よく考えてみれば、ループがある場合は*とかで明示されてる。そういうわけで30分くらいで作ったプログラム。 実行例: $ ruby regen.rb /red|blue|green|(#[01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][0123456
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く