Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

ある正規表現に対して、特定の文字列がマッチするかどうかをチェックするツールやサイトは沢山ありますが、正規表現そのものが何を意味しているのか、どんな文字列を期待しているのかを解析・解読・説明してくれるツールやサイトってなかなか見ない気がします。 他人の書いた正規表現を見て、「ん?」ってなったことはありませんか? 例えばこれ。 1 ^[a-zA-Z0-9-_.]@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ これくらいなら分かりますが、複雑になってくるとつらい… いつかはマスターしたいけど…今は楽したい。 そう思ってググってみると…ありました! それがこちら。 Regexper http://www.regexper.com/ 正規表現を入力して Display をクリックすると、その正規表現が表す内容を図にして表示してくれます。 例えば先程の正規表現は、当記事の一番上の
1 1章 正規表現マッチャ ブライアン・カーニハン (Brian Kernighan) 正規表現は、テキスト中のパターンを指定する記法の 1 つです。そして実質的には、正規表現はパターン マッチのための専用言語を構成しています。正規表現にはさまざまな方言がありますが、それらの間で「パ ターン中のほとんどの文字はその文字と同じ文字にマッチする」という点は共通しています。ただし、いく つかのメタ文字と呼ばれる文字には特別な意味があります。例えば、* は 0 回以上の繰り返しを意味し、 [...] は角括弧内に書かれた文字のどれか 1 つを意味します。 実際には、テキストエディタなどのプログラム中で探索を行うときは、単なる文字列探索が大部分です。そ のため、正規表現も print のような単なる文字列であることが多いのです。print という正規表現は、printf、 sprint、
2010年07月22日13:00 カテゴリ regexp - でエラトステネスのふるい やりましょう。 正規表現で素数判定 - NO!と言えるようになりたい 正規表現でエラトステネスのふるいはさすがに無理かなできました。 #!/usr/bin/perl use strict; use warnings; my $max = shift || 100; my @primes; sieve: for my $ns ( map { 1 x $_ } ( 2 .. $max ) ) { for my $ds (@primes) { last if $ds x length($ds) gt $ns; next sieve if $ns =~ /^(?:$ds)+$/; } push @primes, $ns; printf "%3d:%s\n", length $ns, $ns; } 見ての通り、本
追記:ハッキリ言ってこの正規表現はネタなので,実際に素数判定を行いたい場合は,もっと別な賢いアルゴリズムを使ったほうが良いです 正規表現で素数が判定できるという記事を見たので試してみた. http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/ この記事によると /^1?$|^(11+?)\1+$/ という正規表現を使うと,素数判定が出来るらしい.ある整数 n が素数かどうか判定したい場合は,"1" * nという文字列がこの正規表現にマッチするかどうかを調べればよく,マッチすれば非素数,マッチしなければ素数となる.ただし,"1" * n は,例えば,n が 4 ならば "1111" と 1 が 4 回連続して続く文字列となる. Rubyで書いた素数判定プログラムはこん
Smashing Magazine - WE SMASH YOU WITH THE INFORMATION THAT WILL MAKE YOUR LIFE EASIER, REALLY. 文字列を処理するにあたって正規表現は欠かせない機能といえる。任意の文字列やテキストファイル、HTML/XMLから特定のキーワードを検索したり取り出し、置換をおこなうにあたって、正規表現が使えると使えないのとでは、プログラミングの手間やツールの活用度合いが変わってくる。 正規表現は便利で強力な機能だが、その独特の表記方法はプログラマ初心者には敷居の高いものでもある。Glen Stansberry氏による正規表現に関するチュートリアルや資料、ツールなどのまとめがSmashing MagazineにEssential Guide To Regular Expressions: Tools and Tutori
能書き 前エントリを書いてからいろいろと調べていて驚いたんだけど、日本語のwebsiteで、それなりにまともにRFC822(RFC2822,RFC5322)に準拠した(もしくはきちんと意図的に準拠していない部分を選択している)正規表現はPerlだろうがPHPだろうがRubyだろうが軽くぐぐった程度では見当たらない。PerlのモジュールのEmail::AddressもEmail::Validも程度の差はあれ問題を抱えている。そこらへんの既存の出回ってる正規表現にどういった問題があるかなんてことは次回エントリにて。 というわけで、Perl、PHP、RubyでRFC5322準拠なメールアドレス(addr-spec)の正規表現を以下に示します。尚、addr-specの最終的な正規表現のみならずそれを作成するに至る部分も併記してあります。これは、最終的な正規表現だけでは難解すぎてとても理解できないか
2008年01月14日03:30 カテゴリLightweight Languages regexp - 全角英数字を半角に きっかけは、はてなハイク。 自分と根本的にあわない人 - fmht7 - はてなハイク PCで英数字をダブルバイトで入力する人 禿同、しかし人を憎みたくなかったので。 Perlではお茶の子さいさい。 perl - dankogai - はてなハイク perl -CIO -ple 'tr/\x{FF01}-\x{FF5e}/\x21-\x7e/' は脊髄でひねり出せた。 どうせならJavaScriptでもやってみよう、ということでひねり出したのがこちら。 !釤#$%&釻()*+,−./ 0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_` abcdefghijklmnopqrstuvwxyz {|}〜 var fasci
Have a pattern you want to test? Give it a shot. ReJax does one thing and one thing well: pattern testing. Updated June 27th, 2007 ReJax has been down for a while, but is back up now. Sorry for the trouble :) Supported languages: JavaScript PHP 5 PCRE PHP 5 POSIX Ruby - BETA!! PERL 5 UNIX Shell Pattern It is not necessary to enter the beginning and ending slashes in the pattern field. Not all modi
Emacs で正規表現を使うならば re-builder を使うことをおすすめします。 例えば、正規表現を良く使うシチュエーションとして置換があります。 M-x replace-regexpで置換対象文字列を正規表現で指定し、何に置換して欲しいかを指定するわけです。 行頭に // を追加してソースをコメントアウトしたいのであれば M-x replace-regexp Replace regexp: ^ ← ^ を入力 Replace regexp ^ with: // ← // を入力のように置換をします。(この場合は、comment-region が最適解ですが) 例に挙げたような簡単な正規表現であれば、間違いようもなく問題ないのですが、ちょっと複雑な置換になると話は変わります。 以下のようなコードがあるとしましょう。 byte* buf = new byte[32]; unsigned
日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。
2006年06月16日00:00 カテゴリLightweight Languages書評/画評/品評 perl - 自動で /a|b|c/ を /[abc]/ にしてくれたら... 正規表現においては、/a|b|c/(alteration)は[abc](character class)にすべし、というのは、perlに限らない常識です。 Mastering Regular Expression Jeffrey E. Friedl [邦訳: 詳説 正規表現] qootas.org/blog - perl regex performance"|"(パイプ)を使った正規表現はめちゃくちゃ遅いから使わないように、ということです。確かにベンチマークを取ると32倍速いです。 どうせならPerl自身が内部で/a|b|c/を[abc]にしてくれたらと思ったことありませんか? 少なくとも、正規表現を仕事で使う
出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 記事の信頼性向上にご協力をお願いいたします。(2023年11月) 正規表現(せいきひょうげん、英: regular expression)は、文字列の集合を一つの文字列で表現する方法の一つである。正則表現(せいそくひょうげん)とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われる[1]。まれに正則式(せいそくしき)[2]あるいは正規式(せいきしき)と呼ばれることもある。 もともと正規表現は形式言語理論において正規言語を表すための手段として導入された。形式言語理論では、形式言語が「正規言語であること」と「正規表現によって表せること」は同値である。 その後正規表現は単機能の文字列探索ツールやテキストエディタ、ワードプロセッサなどのアプリケーションで、マッチさせるべき対象を表すために使用されるよう
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く