RegexPatternクラス

Biz/Browser 4.0.3

 

Object

 

 

 

 

 

 

RegexPattern

 

 

 

正規表現パターンを保持するクラスです。

 

Compileスタティックメソッドにより、指定した正規表現をコンパイルし、RegexPatternオブジェクトを生成します。

生成したRegexPatternオブジェクトは、任意の入力文字列とのマッチを行うための正規表現エンジンであるRegexMatcherクラスのオブジェクトを生成するために使用します。

 

1つのRegexPatternオブジェクトからは複数のRegexMathcerオブジェクトを生成できます。それぞれのRegexMatcherオブジェクトは同じ正規表現パターンを共有します。

 

デフォルトプロパティとValueType

 

デフォルトプロパティはPatternです。ValueTypeの指定は無効です。

 

 

よりUnicodeの文字列を扱うUnicodeモードが追加されました。-->

Unicodeモードについて

 

Compileメソッド、Matchesメソッドの引数にRegexPattern.Unicodeを指定すると、正規表現エンジンをUnicodeモードで生成できます。

Unicodeモードでは正規表現や入力文字列はUString型として扱われ、Unicodeの文字を使用できるようになります。

文字の位置を表すインデックス(RegexMatcherクラスのStartEndメソッドの結果など)は文字単位(Unicodeモードではないときはバイト単位)になります。

<-- ここまで

 

 

典型的な利用方法

 

1. Compileスタティックメソッドにより、正規表現をコンパイルし、RegexPatternオブジェクトを生成します。

2. 1で生成したRegexPatternオブジェクトのMatcherメソッドにより、正規表現パターンと入力文字列のマッチを行うRegexMatcherオブジェクトを生成します。

3. 2で生成したRegexMatcherオブジェクトのMatchesメソッド、Findメソッド等でマッチを行います。

 

/* 正規表現をコンパイルします */
var p = RegexPattern.Compile("Biz/([a-zA-Z]+)");
/* 入力文字列を設定し正規表現エンジンを生成します */
var m = p.Matcher("Biz/Browser, Biz/Designer");
 
/* 部分一致検索を行います */
while (m.Find()) {
    /* 部分一致した部分全体を表示 */
    print(m.Group());
    /* 一つ目の前方参照グループを表示 */
    print(" [", m.Group(1) , "]", "\n");
}
/* 全体完全一致 */
print("Matches:", m.Matches(), "\n");
 
/* 先頭からのマッチ */
print("LookingAt:", m.LookingAt(), "\n");
 
----- 実行結果 -----
Biz/Browser [ Browser ]
Biz/Designer [ Designer ]
Matches: 0
LookingAt: 1

 

 

正規表現構文要約

 

正規表現にはPerlに似た構文を用いることができます。

※正規表現クラスでは、PCRE(Perl Compatible Regular Expressions)を使用しています。

メタ文字

\

直後のメタキャラクターをクォートします

^

行の先頭にマッチします。複数行モードでは行の始まり。

.

任意のキャラクター(改行を除く)にマッチします。

$

行の終端にマッチします。複数行モードでは行の終わり。

|

選択

()

グループ化

[]

文字クラス

文字クラスで使用可能なメタ文字

\

直後のメタキャラクターをクォートします

^

最初の文字に用いた場合のみ、クラスを否定する

-

文字の範囲

Biz/Browserの正規表現は、内部データの文字コードにUTF-8を使用しています。文字の範囲指定ではUTF-8の文字コードを使用して範囲を判断します。(Unicodeモードの指定とは無関係で常にUTF-8です)「漢字」などの文字を範囲に指定する場合は注意してください。

バイナリキャラクタ

\t

タブ

\n

改行

\r

リターン

\f

改ページ

\a

アラーム (ベル)

\e

エスケープ

\033

8進キャラクター

\x1B

16進キャラクター

\c[

制御キャラクター

\E

\Qで開始された正規表現演算子のクォートを終了します

\Q

\Eまでの特殊文字を全て通常の文字として扱います

一般キャラクタ

\w

"単語"キャラクター(アルファベット、数字、"_")にマッチします

\W

単語キャラクターでないものにマッチします

\s

空白(whitespace)キャラクターにマッチします

\S

非空白キャラクターにマッチします

\d

数字にマッチします

\D

非数字にマッチします

位置指定子

\b

単語境界にマッチします

\B

単語境界以外にマッチします

\A

文字列の先頭にのみマッチします

\Z

文字列の終端もしくは終端にある改行の直前にのみマッチします

\z

文字列の終端にのみマッチします

\G

検索開始位置にマッチします

キャラクタクラス[:class:]

alnum

英数字

alpha

英字

ascii

キャラクターコード 0 - 127

blank

空白またはタブ

cntrl

制御文字

digit

10進数字

graph

表示可能文字 スペースを除く

lower

小文字の英字

print

表示可能文字

punct

句読文字

space

空白文字

upper

大文字の英字

word

"単語"キャラクター(アルファベット、数字、"_")にマッチします

xdigit

16進数字

量指定子

*

ゼロ回以上の繰り返しにマッチします

+

一回以上の繰り返しにマッチします

?

ゼロ回もしくは一回の繰り返しにマッチします

{n}

n回の繰り返しにマッチします

{n,}

少なくともn回ある繰り返しにマッチします

{n,m}

n回からm回の間の繰り返しにマッチします

 

 

プロパティ | メソッド | イベント

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る