リファレンス  05/16/03 14:30:28 

テキスト検索のための正規表現

文字列そのものの検索では、十分な検索結果が得られない場合があります。 たとえば、行の先頭の語や、任意の数のスペースで区切られた2語を検索する場合がそうです。 Novell&Reg; exteNd\xaa Workbenchのテキストベースのエディタでは、通常の検索機能を補強する正規表現(文字列の一致を記述するためのパターン)の使用がサポートされています。

この章は次の節で構成されています。

注記:   正規表現による検索は、[Search]を選択すると表示される[Find in Files]ダイアログボックス、およびネイティブエディタから表示される[Find]ダイアログボックスで実行できます。

 
Top of page

検索操作での正規表現の使用

[Find]ダイアログボックスでは、[Search for]テキストボックスに正規表現の構文を直接入力できるだけでなく、正規表現による検索を行う場合に使用できる「正規表現」のヘルパーメニューもあります。

ヘルパーメニューの項目を選択すると、構文構成要素を作成する1つまたは複数の文字が表現に追加されます。 ほとんどの正規表現の検索では、[Search for]テキストボックスに直接入力するテキストと組み合わせて、これらの構文構成要素を複数使用する必要があります。

For more information    正規表現のヘルパーメニュー項目の詳細については、 正規表現のリファレンスを参照してください。

注記:   正規表現の検索を実行中、[Find]ダイアログボックスの一部の検索オプションが使用できなくなります。 たとえば、[Match whole word]オプションは、正規表現自体の中でその選択が行われるため、無意味になります。

Procedure 検索操作で正規表現を使用する

  1. Search]>[Find in Files ]の順に選択するか、またはネイティブエディタで[Search]>[Find]の順に選択します。

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

  2. Regular Expression]チェックボックスをオンにします。

    または

    Search for]テキストボックスの右側にある右向き矢印をクリックして、正規表現のヘルパーメニューから選択します。

  3. Search for]テキストボックスに正規表現を入力するか、またはリテラルテキストと正規表現のヘルパーメニューから選択したものを組み合わせて正規表現を作成します。

    次に例を示します。

    一致語句

    入力語句

    getTextまたはsetText

    [gs]etText

    voidの後にmainが続く場合で、2語の間に任意の数のスペースがある

    void\s+main

  4. OK]をクリックすると、検索が開始されます。

    検索条件に一致したテキストは、Workbenchエディタで選択されて表示されます。

 
Top of page

正規表現のリファレンス

この節の表では、Workbenchの正規表現の構文構成要素について説明します。 これらの構成要素の多くは、正規表現のヘルパーメニューから使用できます。

正規表現の構成要素には、次のような複数のカテゴリがあります。

 
Top of section

文字

構文

説明

unicodeChar

同一のUnicode文字に一致する

\

メタ文字(*など)を引用する場合に使用される

\\

単一の円(\)文字に一致する

\0nnn

特定の8進文字に一致する

\xhh

特定の8ビット16進文字に一致する

\\uhhhh

特定の16ビット16進文字に一致する

\t

ASCIIタブ文字に一致する

\n

ASCII改行文字に一致する

\r

ASCIIリターン文字に一致する

\f

ASCIIフォームフィード文字に一致する

 
Top of section

文字クラス

構文

説明

[abc]

単純な文字クラス

[a-zA-Z]

範囲を持つ文字クラス

[^abc]

否定文字クラス

 
Top of section

標準POSIX文字クラス

構文

説明

[:alnum:]

英数文字

[:alpha:]

アルファベット文字

[:cntrl:]

制御文字

[:digit:]

数字

[:graph:]

印刷も表示も可能な文字(例: スペースは印刷可能でも表示可能ではないが、aは印刷も表示も可能)

[:lower:]

アルファベットの小文字

[:print:]

印刷可能な文字(制御文字ではない文字)

[:punct:]

区切り記号(文字、数字、制御文字、またはスペース文字ではない文字)

[:space:]

スペース文字(スペース、タブ、フォームフィードなど)

[:upper:]

アルファベットの大文字

 
Top of section

非標準POSIXスタイルの文字クラス

構文

説明

[:javastart:]

Java識別子の開始

[:javapart:]

Java識別子の一部

 
Top of section

定義済みのクラス

構文

説明

.

改行以外の任意の文字に一致する

\w

語を構成する文字(英数字と"_")に一致する

\W

語を構成する文字以外の文字に一致する

\s

空白文字に一致する

\S

空白文字以外の文字に一致する

\d

数字に一致する

\D

数字以外の文字に一致する

 
Top of section

境界一致

構文

説明

^

行の先頭でのみ一致する

$

行の末尾でのみ一致する

\b

語の境界でのみ一致する

\B

語の境界以外でのみ一致する

 
Top of section

閉包演算子

すべての閉包演算子(+、*、?、{m,n})は、デフォルトで「欲張り」です。つまり、全体的な一致が失敗しない限りにおいて、できるだけ多くの文字列要素に一致します。

構文

説明

A*

Aに0回以上一致する

A+

Aに1回以上一致する

A?

Aに0回または1回一致する

A{n}

Aにn回一致する

A{n,}

Aに少なくともn回一致する

A{n,m}

Aにn回以上m回以下一致する

 
Top of section

逆参照

「逆参照」を使用すると、正規表現自体の中に括弧で囲まれた式の内容を参照できます。 正規表現での最初の逆参照は\1、2番目の逆参照は\2のように、順に示されます。 例として、次のような式があるとします。

  ([0-9]+)=\1

この場合、0=0または2=2のような、「n=n」の形式の任意の文字列に一致します。

  リファレンス  05/16/03 14:30:28 

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.