タグ

regexpに関するdefiantのブックマーク (6)

  • 正規表現を解析して可視化してくれるサイトが凄すぎる件

    ある正規表現に対して、特定の文字列がマッチするかどうかをチェックするツールやサイトは沢山ありますが、正規表現そのものが何を意味しているのか、どんな文字列を期待しているのかを解析・解読・説明してくれるツールやサイトってなかなか見ない気がします。 他人の書いた正規表現を見て、「ん?」ってなったことはありませんか? 例えばこれ。 1 ^[a-zA-Z0-9-_.]@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ これくらいなら分かりますが、複雑になってくるとつらい… いつかはマスターしたいけど…今は楽したい。 そう思ってググってみると…ありました! それがこちら。 Regexper http://www.regexper.com/ 正規表現を入力して Display をクリックすると、その正規表現が表す内容を図にして表示してくれます。 例えば先程の正規表現は、当記事の一番上の

    正規表現を解析して可視化してくれるサイトが凄すぎる件
  • メールアドレスの正規表現

    更新日 2019/5/3 戻る Perlメモへ - メールアドレスの正規表現へ Perl正規表現雑技へ 更新履歴 2019/05/03 「制御文字を除去する」「参考文献」RFC5321日語訳のリンク修正 2009/08/13 $atextのバグ修正 2009/05/06 「正規表現を簡略化する」追記 2009/04/29 「旧形式を削除する」追記 2009/04/13 「IPアドレスを除去する」追記 目次 RFCに準拠したメールアドレスの正規表現 コメントと空白文字を除去する 制御文字を除去する IPアドレスを除去する 旧形式を除去する 正規表現を簡略化する 参考文献 RFCに準拠したメールアドレスの正規表現 メールアドレスについては RFC 5322 に addr-spec として書かれています. 下記は RFC 5322 に従って導き出した正規表現です. 14,277バイトあります.

  • Perlの正規表現のバグ? (後編) - moriyoshiの日記

    追記: ケース4についての記述がなかったので言及。 前回の調査で、[[:print:]] と \p{IsPrint} は実は等価でないということが分かったわけだけど、これだけではまだ再現できなかった理由、つまり、 use encoding 'utf-8'; $_ = "\t"; # 1. マッチしない printf("%d\n", /[[:print:]]/); # 2. マッチする printf("%d\n", /^[[:print:]]/); # 3. マッチする printf("%d\n", /[[:print:]]$/); # 4. マッチする printf("%d\n", /^[[:print:]]$/); # 5. マッチしない printf("%d\n", /[[:print:]]+/); # 6. マッチする printf("%d\n", /^[[:print:]]+/);

    Perlの正規表現のバグ? (後編) - moriyoshiの日記
  • Perlの正規表現のバグ? (前編) - moriyoshiの日記

    「鬼車の[[:print:]]はPOSIX流じゃないらしい」でid:ockeghemさんやid:nihenさんと先週いろいろやりとりしてた中で、一つだけ解決していない問題があった。 utf8フラグが立っているかどうかでPOSIX文字クラスのマッチの挙動が変わるという件。 大変詳しい調査をありがとうございます。トラックバックのブログに書いたように、[:print:]の挙動は、Perlでもutf8フラグの有無でも変わってくるようです。[:print:]は実用できないなと思いました え?まじ?と思うも、一応Perlのコード例も出していたので検証しないわけにはいかない。以下のようなコードで試してみたが、utf8フラグが立っていない場合と同じ結果となり、再現しないのだ。 use encoding 'utf8'; for (split //, "\t\r\n a") { printf("%d:%d:%

    Perlの正規表現のバグ? (前編) - moriyoshiの日記
  • 正規表現からその正規表現にマッチするような例を生成する - soutaroブログ

    当にやりたいことは、 型から、その型を持つようなRubyプログラムを生成するなんだけど(というかこれはHaskell界隈の人が喜んでやってるやつだよな、つまんね)、とりあえず正規表現で考えてみてた。 正規表現は有限状態オートマトンになるわけで、ループがあるとやだなぁ、とか考えてたんだけど、研究室の後輩(オートマトン屋さん)に相談してみたら、少なくとも正規表現に限定してしまえば簡単になると言われた。確かに、よく考えてみれば、ループがある場合は*とかで明示されてる。そういうわけで30分くらいで作ったプログラム。 実行例: $ ruby regen.rb /red|blue|green|(#[01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][01234567890ABCDEF][0123456

    正規表現からその正規表現にマッチするような例を生成する - soutaroブログ
  • Eclipseプラグイン 正規表現の入力・テスト

    今回は、正規表現の入力、テストを支援するQuickRExプラグイン、ログ出力コードの入力を支援するLog4E、プロパティファイルの入力を支援するCrossJPropEditorをご紹介します。 1.QuickRExプラグイン 正規表現は、文字列のパターンを表現する表記法で、入力値の検証や、文字列の検索・置換等で利用することができます。Java開発においては、Strutsのバリデータ等で利用されています。正規表現は便利なのですが、構文が特殊なため、初心者には分かりにくいという欠点があります。正規表現の入力を支援するQuickRExを利用すると、正規表現の入力が簡単になります。 ■特長 QuickRExは次のような特長を持ちます。 ・補完機能 Javaコードの補完と同じような感覚で正規表現の補完を行うことができます。 ・正規表現のテスト テストコードを書いてプログラムを走らせなくてもダイアログ

    Eclipseプラグイン 正規表現の入力・テスト
  • 1