Movatterモバイル変換


[0]ホーム

URL:


BLOGTIMES

cles::blog

平常心是道
« :: »
2013/09/03

Regexp::Assemble で正規表現を生成する

  perl  regex 
このエントリーをはてなブックマークに追加

詳説 正規表現 第3版

以前、Regexp Assemble For PHP は使ったことがありましたがオリジナルのRegexp::Assemble は使ったことがなかったのでちょっと動かしてみました。
このモジュールを使えば、フクロウ本とにらめっこしなくても、複雑な正規表現を効率よく組み立てることができます。

サンプルほとんどそのままですが、UTF-8が通るようにしてあります。

#!/usr/bin/env perluse Regexp::Assemble;use warnings;use strict;use utf8;binmode STDIN, ":utf8";binmode STDOUT, ":utf8";my $ra = Regexp::Assemble->new();while (my $line = <STDIN>){ chomp($line); $ra->add($line);}print $ra->re;

以下、実行例。

このサンプルは標準入力を読み取って正規表現を組み立てるようになっています。
試しに全国の47都道府県を入力して正規表現を生成してみます。

$ ./assenble.pl北海道青森県岩手県宮城県秋田県山形県福島県茨城県栃木県群馬県埼玉県千葉県東京都神奈川県新潟県富山県石川県福井県山梨県長野県岐阜県静岡県愛知県三重県滋賀県京都府大阪府兵庫県奈良県和歌山県鳥取県島根県岡山県広島県山口県徳島県香川県愛媛県高知県福岡県佐賀県長崎県熊本県大分県宮崎県鹿児島県沖縄県(?-xism:(?:(?:(?:[富岡]|和歌)山|(?:[広徳]|鹿児)島|(?:[石香]|神奈)川|山[口形梨]|福[井岡島]|[佐滋]賀|宮[城崎]|愛[媛知]|長[崎野]|三重|兵庫|千葉|埼玉|奈良|岐阜|岩手|島根|新潟|栃木|沖縄|熊本|秋田|群馬|茨城|青森|静岡|高知|鳥取)県|大(?:分県|阪府)|京都府|北海道|東京都))

最後の行が生成された正規表現なので、これを使えば都道府県名に一撃でマッチさせることができます。


    byhsur at 17:45[5年前][4年前][3年前][2年前][1年前][1年後][2年後][3年後][4年後][5年後] |
    こんな記事もあります 「Regexp 組立 正規表現
    XPath のデバッグに便利な「XPather」
    Python で正規表現の構文木を得るには
    Regexp::Assemble を go で実装した rassemble-go が便利
    周回遅れだけど ripgrep (rg) を使い始めてみた
    特定のサイトを Google の検索結果に表示させないアドオン uBlacklist
    grep でマッチした部分だけを取り出す
    正規表現のデバッグには RegExr が便利
    PN7120 を使って Raspberry Pi から IC カードを読み取る
    Flexible Renamer でファイル名を一括置換
    オンラインで正規表現をテストできる Regex101
    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/6120
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL:Yahoo! JAPAN IDでログイン

    « :: »
    Copyright © 2004-2023 by CLES All Rights Reserved.
    サイト内検索
    検索ワードランキング
    へぇが多いエントリ
    閲覧数が多いエントリ
    1 .アーロンチェアのポスチャーフィットを修理(99686)
    2 .年次の人間ドックへ(99099)
    3 .福岡銀がデマの投稿者への刑事告訴を検討中(99087)
    4 .三菱鉛筆がラミーを買収(98697)
    5 .2023 年分の確定申告完了!(1つめ)(98666)
    最新のエントリ
    cles::blogについて
    誰が書いてる?
    最近行った場所
    サイトポリシー
    タグ一覧
    検索ワードランキング

    Referrers

      Powered by CLES
      Nucleus CMS v3.31SP3/w memcached
      21376887(W:7512 Y:1720 T:0986)
      cles::blogのはてなブックマーク数
      benchmark


      [8]ページ先頭

      ©2009-2025 Movatter.jp