秀まるおのホームページ
ホーム ソフトウェア ライブラリ ご購入方法 サポート ソリューション 公式マニュアル 書籍紹介 リンク
 ■ 秀まるおのホームページ(サイトー企画) > ソフトウェア > 秀丸エディタ > 秀丸エディタの紹介(Ver7.00対応版)(強力な正規表現検索機能) dummy

  秀丸エディタの紹介(Ver7.00対応版)(強力な正規表現検索機能)

概要
Ver7.00の新機能
単語補完機能1
単語補完機能2
単語補完機能3
grepして置換
検索/置換ダイアログの
リニューアル
自動起動マクロをさらに追加
アウトライン機能の強化
浮動小数点数版(統合版)
テキストブラウザの強化
その他
秀丸エディタの機能紹介
充実の基本機能
強力な正規表現検索機能
多くの文字コードに対応
鮮やかなカラー表示機能
縦書き・段組
高度なアウトライン機能
部分編集機能
折りたたみ機能
強力なマクロ
柔軟なカスタマイズ機能
便利なファイルタイプ別の
カスタマイズ機能
高度なウィンドウ管理
便利なタブ機能
便利なインターネット機能
(アドインソフト使用)
便利な印刷機能
(アドインソフト使用)
変換モジュールで
変換機能の拡張
アイコンモジュールで
自分風のソフトに変身
Windows Vista 対応

 強力な正規表現検索機能
 秀丸エディタでは、「検索」「置換」「grep」などで正規表現を使用することができます。正規表現を使用するとDOSのワイルドカードのような検索はもとより,非常に複雑な条件で検索することができます。

 秀丸エディタでの正規表現は、外部のDLL(プログラム)によって実現されています。
 サイトー企画で独自に作成した「HmJre.dll」と山田和夫氏の「JRE32.DLL」が付属しています。
 その他の正規表現DLLも秀丸エディタで設定することで使用可能です。
 「HmJre.dll」は、Unicodeにも対応しています。


タグつき正規表現による置換機能

 タグ付き正規表現による置換とは、検索でヒットした文字列の中からタグによって指定した部分を取り出して、その文字列を置換先の文字列の一部として利用する置換の方法です。

 例えば、「AさんはBさんの友達です」というような文章を、「BさんはAさんの友達です」のように変換したい場合、従来はマクロでも使わないと自動で処理することはできませんでした。しかし、タグ付き正規表現による置換を使えば、一発で変換することができます。

 先ほどの例の場合だと、
検索文字列: (.+)さんは(.+)さんの友達です
置換文字列: \2さんは\1さんの友達です
 とすることで、「A」と「B」に相当する部分の入れ替えができます。
 検索文字列で、()で囲われた部分が、順番に \1,\2… として置換文字列で表現可能です。

 括弧によるタグ付き正規表現は、HmJre.dllを使っている場合にのみ利用可能ですが、従来のJRE32.DLLや他のDLLを使っている場合にも、秀丸エディタ独自の方式でタグを使うこともできます。この場合は、検索文字列を\fで区切って、置換文字列では\0,\1,\2…という順番が使用できます。
検索文字列: .+\fさんは\f.+\fさんの友達です
置換文字列: \2さんは\0さんの友達です

強化されている HmJre.dll

 HmJre.dll は、JRE32.DLL の上位互換を維持しつつ正規表現をより高度に拡張しています。
  • 繰り返し指定その1(固定回数)
     特定の正規表現パターンをn回繰り返す場合には、{n}を使います。nの部分には数値が入ります。例えばabcを3回繰り返すには、(abc){3}と記述します。
     数字を5回繰り返すには、[0-9]{5}と書きます。
  • 繰り返し指定その2(n回以上)
     特定の正規表現パターンがn回以上出てくることにマッチさせるには、{n,}を使います。nの部分には数値が入ります。例えばabcが3回以上繰り返すには、(abc){3,}と記述します。
  • 繰り返し指定その3(n回以上、m回以下)
     特定の正規表現パターンがn回以上m回以下出てくることにマッチさせるには、{n,m}を使います。nおよびmの部分には数値が入ります。
  • 後方一致指定
     特定の正規表現パターンの後に、さらに特定の正規表現パターンが続くことを指定しつつ、正規表現にヒットする文字列としては前方部分のみとするような指定が出来ます。
     例えば、「abcxyz」という文字列を検索しつつ、ヒットする文字としては「abc」だけにしたいようなケースに使います。普通の検索では必要ありませんが、強調表示や置換の時に使うと便利です。
     例えば「abc」の後に「xyz」が続きつつ、ヒットする文字列は「abc」だけにしたい場合は、abc(?=xyz)と指定します。
  • 後方不一致指定
     後方一致指定とは反対に、後方部分が特定のパターンにヒットしないことを必要とします。例えば「abc」の後ろが「xyz」でない場合に「abc」のみにヒットさせたいようなケースで使います。
     上記例では、abc(?!xyz)と指定します。
  • 前方一致指定
     特定の正規表現パターンの前に、さらに特定の正規表現パターンが存在していることを指定しつつ、正規表現にヒットする文字列としては後方部分のみとするような指定が出来ます。
     例えば、「abcxyz」という文字列を検索しつつ、ヒットする文字としては「xyz」だけにしたいようなケースに使います。普通の検索では必要ありませんが、強調表示や置換の時に使うと便利です。
     例えば「abc」の後に「xyz」が続きつつ、ヒットする文字列は「xyz」だけにしたい場合は、(?<=abc)xyzと指定します。
  • 前方不一致指定
     前方一致指定とは反対に、前方部分が特定のパターンにヒットしないことを必要とします。例えば「xyz」の前が「abc」でない場合に「xyz」のみにヒットさせたいようなケースで使います。
     上記例では、(?<!abc)xyzと指定します。
  • ものぐさ(non-greedy)指定
     「*」、「+」、「?」、「{n,m}」のような繰り返し指定は、原則として、もっとも長い文字列にマッチさせるように動作します。例えば「a*」の指定が"a"の文字が連続している文字列にヒットするとき、"a"の全体にヒットします。
     ものぐさ指定をした場合は、逆に、もっとも短い文字列にヒットしようとします。

『ページのトップへ』

| プライバシーポリシー | 各サービスにおける個人情報の利用目的について |