Pattern と Matcher の使用
Apex には、正規表現を使用してテキストを検索できる Pattern と Matcher があります。
Pattern とは正規表現をコンパイルしたものです。Pattern は、Matcher が文字列に対してマッチ処理を実行するのに使用します。
正規表現とは、特定の構文を使用して他の文字列との一致を探すために使用する文字列です。Apex では、Pattern および Matcher クラスでの正規表現の使用をサポートしています。
次の図に示すように、多くの Matcher オブジェクトは同じ Pattern オブジェクトを共有します。
多くの Matcher は同じ Pattern オブジェクトから作成します。
Apex の正規表現は、Java で使用される正規表現の標準に従っています。Java ベースのすべての正規表現文字列を簡単に Apex コードにインポートできます。
すべての正規表現は文字列として指定されます。ほとんどの正規表現は、まず Pattern オブジェクトにコンパイルされます。String split メソッドのみがコンパイルされていない正規表現を扱うことができます。
一般的に、正規表現を Pattern オブジェクトにコンパイルすると、Pattern オブジェクトが使用されるのは Matcher オブジェクト作成時の 1 回のみです。その他の処理は Matcher オブジェクトを使用して実行されます。次に例を示します。
1// First, instantiate a new Pattern object "MyPattern"
2Pattern MyPattern = Pattern.compile('a*b');
3
4// Then instantiate a new Matcher object "MyMatcher"
5Matcher MyMatcher = MyPattern.matcher('aaaaab');
6
7// You can use the system static method assert to verify the match
8System.assert(MyMatcher.matches());正規表現を 1 回のみ使用する場合は、Pattern クラスの matches メソッドを使用すると、表現のコンパイルと文字列に対するマッチ処理を 1 回の呼び出して実行できます。たとえば、次のコードは上記のコードと同一です。
1Boolean Test = Pattern.matches('a*b', 'aaaaab');