検索置換機能の使用

JRun Studio の検索置換機能は強化されており、サイトのコンテンツを更新するための強力なツールになっています。

たとえば、フォルダやプロジェクト全体にわたって正規表現などの英数文字列を検索および置換できます。

基本検索コマンドの使用

JRun Studio には、Web ページを維持するのに役立つ基本レベルと拡張レベルの両方の検索置換機能があります。

手順 現在のドキュメントを検索するには
  1. [検索] > [検出] を選択します。

    [検索] ダイアログ ボックスが表示されます。

  2. [検索対象] ボックス内で、検索テキストを入力します。

    エディタ内で検索テキストを強調表示すると、そのテキストが [検索対象] ボックス 内に表示されます。テキストが強調表示されない場合は、カーソルの位置にテキスト 文字列が表示されます。カーソルが空白位置にある場合は、最も近くにある文字列が 表示されます。

  3. [全文を一致させる] オプション、[大文字と小文字を区別する] オプション、および [方向] オプションを設定します。
  4. [次を検索] ボタンをクリックすると、一致文字列が 1 つずつ順番に強調表示されます。
  5. [検索] ダイアログ ボックスを閉じた後に現在のカーソル位置から検索を再開するには、F3 キーを押します。
手順 現在のドキュメント内のテキストを置換するには
  1. [検索] > [置換] を選択します。
  2. [置換] ダイアログ ボックスが表示されます。
  3. [検索] および [置換] ダイアログ ボックス内にテキストを入力します。
  4. [全文を一致させる] オプションと [大文字と小文字を区別する] オプションを設定します。

    上下方向の検索オプションだけでなく、エディタ内のテキストのブロックを強調 表示し、[選択範囲に適用] を選択することによって、検索をドキュメントの一部に 制限することができます。

  5. 選択置換を実行したり、すべての一致を置換することができます。

検索された最後の 10 個の項目は、[検索対象] ドロップダウン リストと [置換対象] ドロップダウン リストに保存されます。

拡張検索置換機能の使用

複数のドキュメントにわたり、より複雑な操作を行う場合は、[拡張検索] コマンドまたは [拡張置換] コマンドを使います。検索を最適化するにはいくつかの方法があります。

メモ : [拡張検索] および [拡張置換] ダイアログ ボックスでは、標準の検索ダ イアログ ボックスのように自動的にテキストは入力されません。ユーザは、 テキストを選択するか、入力する必要があります。

[結果] 画面では、一致した文字列が置換される場所のリストが表示されます。ドキュメント内のテキストを強調表示するには、リスト内の一致候補をダブルクリックします。[結果] 画面でマウスの右ボタンをクリックして、画面をクリアするか、または画面を閉じます。

メモ : [拡張置換] コマンドを使うと、読み取り専用ファイルはスキップされま す。

特殊文字の置換

[検索] > [特殊文字を置換] コマンドを使って、拡張文字を HTML の対応する文字に置換するか、または HTML のタグを対応する拡張文字に置換します。このコマンドは、現在のドキュメント内でのみ実行することができます。

ダブル スペース行の置換

改行の方式はオペレーティング システムごとに異なります。したがって、UNIX または Macintosh の形式で保存されたテキスト ファイルを JRun Studio で開くと、ダブル スペースになっている場合があります。現在のドキュメント内のダブル スペースの行をシングル スペースに変更するには、[検索] > [ダブル スペースをシングル スペースに置換] コマンドを使います。

正規表現による検索

JRun Studio では、[拡張検索] および [拡張置換] コマンドにおいて、文字列内のパターンの一致に使われる正規表現による検索がサポートされています。正規表現を使うと、検索中に検出する可能性がある別の形態による表記を指定して、置換を正確に制御することができます。通常の文字と特殊文字を組み合わせて検索パターンを定義します。RegExp パーサは、選択されたファイルを評価し、各マッチング パターンを返します。

[検索] オプションを選択すると、マッチング パターンが検索リストに追加されます。[置換] オプションを選択すると、置換テキストが挿入されます。文字列を置換するときは、一致した文字列だけでなく、一致しなかった文字列も確認することが重要です。単純な正規表現を複雑な検索基準に組み入れることができます。[拡張] ダイアログ ボックスで [正規表現] オプションを有効にすると、[検索中はタグをスキップ] オプションが無効になります。

メモ : この節にリストされているルールは、JRun Studio で正規表現を作成する ためのものです。他の RegExp パーサでは、別のルールが使われる場合が あります。

RegExp エンジンは、行ごとではなくドキュメント全体を解析します。このことは、アスタリスク記号 (*)、カレット記号 (^)、ドル記号 ($) などの文字の使用方法に影響を与えます。

特殊文字

正規表現では、特殊文字は演算子として使われます。特殊文字を通常の文字として表現するには、特殊文字の前に円記号を入力する必要があります。たとえば、円記号自体を表現するには、2 つの円記号 (\) を入力します。

1 文字正規表現

この節では、正規表現を作成する際の規則について説明します。[検索] > [拡張検索置換] コマンドに正規表現を使うと、複雑な文字列パターンを比較することができます。

1 つの文字と一致する 1 文字による正規表現には次の規則が適用されます。

文字クラス

いずれかの POSIX 文字クラスを使って、文字を指定することができます。次の例のように、2 つの角かっこでクラス名を囲みます。

"Allaire's Web Site","[[:space:]]","*","ALL")

このコードにより、すべてのスペースがアスタリスク記号に置換され、次の文字列が生成されます。

Allaire's*Web*Site

次の表は、JRun Studio がサポートしている POSIX 文字クラスを示します。

文字クラス 一致

alpha

任意の文字 [A-Z、a-z]

upper

任意の大文字 [A-Z]

lower

任意の小文字 [a-z]

digit

任意の数字 [0-9]

alnum

任意の英数字 [A-Z、a-z、0-9]

xdigit

任意の 16 進数字 [0-9、A-F、a-f]

space

タブ、改行、垂直タブ、フォーム フィード、キャリッジ リターン、またはスペース

print

任意の印刷可能な文字

punct

任意の区切り文字! \xd4 # S % & \xd4 ( ) * + , -. / : ; < = > ? @ [ / ] ^ _ { | } ~ のいずれかが一致します。

graph

space 文字クラスの一部として定義された文字以外の、印刷可能文字として定義された任意の文字

cntrl

文字クラス

[:upper:]、[:lower:]、[:alpha:]、[:digit:]、[:punct:]、[:graph:]、[:print:]、[:xdigit:] の一部ではない任意の文字

複数文字の正規表現

複数文字による正規表現は、次の規則に従って作成することができます。

逆参照の使用

JRun Studio では逆参照がサポートされています。逆参照を使うと、前に一致した一連のかっこ内のテキストを比較させることができます。数字 n の前のスラッシュは、n 番目のかっこに囲まれた部分表現を参照します。

逆参照を使った 1 つの例は、テキスト内に "is is" または "the the" などの重複語がないかどうかの検索です。次の例は、正規表現内で逆参照を使う構文を示しています。

("There is is coffee in the the kitchen",
"([A-Za-z]+)[ ]+\1","*","ALL") 

このコードでは、すべての文字 ([A-Za-z]+) の後ろに 1 つ以上のスペース ([ ]+) があり、さらにその後ろに、カッコ内の部分表現と 1 度一致している文字を持つ単語が検索されます。パーサにより、is が連続して 2 つ使われている部分と、the が連続して 2 つ使われている部分が検出され、それがアスタリスクに置換されて、次のテキストが生成されます。

There * coffee in * kitchen

文字列への正規表現の固定

正規表現の一部を、検索対象となる文字列の先頭または末尾に固定することができます。

表現の例

次の例では、正規表現とその表現と一致する項目を説明します。

正規表現 説明
[\?&]value=

URL に使われている URL のパラメータの値。

[A-Z]:(\[A-Z0-9_]+)+

(a) ドライブのルートではなく、(b) そのテキスト内に文字、数字、アンダースコアのみを持つ、DOS/Windows で使われている大文字の絶対パス。

[A-Za-z][A-Za-z0-9_]*

修飾子を持たない ColdFusion 変数。

([A-Za-z][A-Za-z0-9_]*)
(\.[A-Za-z][A-Za-z0-9_]*)?

修飾子を 1 つしか持たない ColdFusion 変数。たとえば、Form.VarName は一致しますが、Form.Image.VarName は一致しません。

(\+|-)?[1-9][0-9]*

0 で始まらない、オプション記号を持つ整数。

(\+|-)?[1-9][0-9]*(\.[0-9]
*)?

実数。

(\+|-)?[1-9]\.[0-9]*E(\+|-
)?[0-9]+

エンジニアリング表記法での実数。

a{2,4}

aa、aaa、aaaa のように、"a" が 2 〜 4 回発生した場合に一致します。

(ba){3,}

bababa、babababa ... のように、少なくとも "ba" が 3 回発生した場合に一致します。

リソース

『詳説正規表現』Jeffrey E.F. Friedl 著、歌代和正監訳、春遍雀来、鈴木武生共訳 (株式会社オライリー・ジャパン発行) は、正規表現の習得に適した、優れた参考文献です。