Biz/Browser 4.0.3
|
|||
|
|
|
|
|
RegexPattern |
||
|
|||
正規表現パターンを保持するクラスです。
Compileスタティックメソッドにより、指定した正規表現をコンパイルし、RegexPatternオブジェクトを生成します。
生成したRegexPatternオブジェクトは、任意の入力文字列とのマッチを行うための正規表現エンジンであるRegexMatcherクラスのオブジェクトを生成するために使用します。
1つのRegexPatternオブジェクトからは複数のRegexMathcerオブジェクトを生成できます。それぞれのRegexMatcherオブジェクトは同じ正規表現パターンを共有します。
デフォルトプロパティはPatternです。ValueTypeの指定は無効です。
よりUnicodeの文字列を扱うUnicodeモードが追加されました。-->
Compileメソッド、Matchesメソッドの引数にRegexPattern.Unicodeを指定すると、正規表現エンジンをUnicodeモードで生成できます。
Unicodeモードでは正規表現や入力文字列はUString型として扱われ、Unicodeの文字を使用できるようになります。
文字の位置を表すインデックス(RegexMatcherクラスのStart、Endメソッドの結果など)は文字単位(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 |
検索開始位置にマッチします |
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回の間の繰り返しにマッチします |