Instance Method インスタンスメソッド

enumerateMatchesInString:options:range:usingBlock:

Enumerates the string allowing the Block to handle each regular expression match. 文字列を、「ブロック」に各正規表現マッチを取り扱わせて、列挙します。

Declaration 宣言

- (void)enumerateMatchesInString:(NSString *)string 
                         options:(NSMatchingOptions)options 
                           range:(NSRange)range 
                      usingBlock:(void (^)(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop))block;

Parameters パラメータ

string

The string. 文字列。

options オプション

The matching options to report. See NSMatchingOptions for the supported values. 伝えるマッチング・オプション。NSMatchingOptionsを支持される値のために見てください。

range

The range of the string to test. 調べる文字列の範囲。

block

The Block enumerates the matches of the regular expression in the string. 文字列中のその正規表現の全てのマッチを列挙する「ブロック」。

The block takes three arguments: ブロックは、次の3つの引数をとります:

result 結果

An NSTextCheckingResult specifying the match. This result gives the overall matched range via its range property, and the range of each individual capture group via its rangeAtIndex: method. The range {NSNotFound, 0} is returned if one of the capture groups did not participate in this particular match. マッチを特定しているNSTextCheckingResult。この結果は、そのrangeプロパティ経由で全体的なマッチされた範囲を、そしてそのrangeAtIndex:メソッドによって捕獲グループそれぞれの範囲を提供します。捕獲グループの1つがこの特定のマッチに関与しないならば、範囲 {NSNotFound, 0} が返されます。

flags フラグ

The current state of the matching progress. See NSMatchingFlags for the possible values. マッチングの進捗の現在の状態。可能な値のためにNSMatchingFlagsを見てください。

stop 中止

A reference to a Boolean value. The Block can set the value to YES to stop further processing of the array. The stop argument is an out-only argument. You should only ever set this Boolean to YES within the Block. あるブール値への参照。「ブロック」は、配列の更なる処理を止めるために値をYESに設定することができます。stop引数は、ひとつの退出専用引数です。あなたは、常に「ブロック」内部でこのブールをYESに設定できるだけであるべきです。

The Block returns void. 「ブロック」は、voidを返します。

Discussion 議論

This method is the fundamental matching method for regular expressions and is suitable for overriding by subclassers. There are additional convenience methods for returning all the matches as an array, the total number of matches, the first match, and the range of the first match. このメソッドは、基本的なマッチング・メソッドであって、サブクラス作成者によってオーバーライドするのに適したものです。全てのマッチの配列、マッチの総数、最初のマッチ、そして最初のマッチの範囲を返す、いっそう便利なメソッドもあります。

By default, the Block iterator method calls the Block precisely once for each match, with a non-nil result and the appropriate flags. The client may then stop the operation by setting the contents of stop to YES. The stop argument is an out-only argument. You should only ever set this Boolean to YES within the Block. 初期状態では、「ブロック」イテレータ・メソッドは「ブロック」を、非nilresultと適切なflagsとともに、各マッチに対して正確に一度だけ呼びます。クライアントは、それからstopの内容をYESに設定することによって操作を止めることができます。stop引数は、ひとつの退出専用引数です。あなたは、常に「ブロック」内部でこのブールをYESに設定できるだけであるべきです。

If the NSMatchingReportProgress matching option is specified, the Block will also be called periodically during long-running match operations, with nil result and NSMatchingProgress matching flag set in the Block’s flags parameter, at which point the client may again stop the operation by setting the contents of stop to YES. NSMatchingReportProgressマッチング・オプションが指定されるならば、「ブロック」はまた長く実行されているマッチ操作の間に定期的に呼ばれることもします、そしてnilの結果でそしてNSMatchingProgressマッチングフラグが「ブロック」のflagsパラメータにおいて設定されると、その時点でクライアントはstopの内容をYESに設定することによって再び操作を止めることができます。

If the NSMatchingReportCompletion matching option is specified, the Block object will be called once after matching is complete, with nil result and the NSMatchingCompleted matching flag is set in the flags passed to the Block, plus any additional relevant NSMatchingFlags from among NSMatchingHitEnd, NSMatchingRequiredEnd, or NSMatchingInternalError. NSMatchingReportCompletionマッチング・オプションが指定されるならば、「ブロック」オブジェクトがマッチングが完了した後に一度だけ呼ばれます、nilの結果とNSMatchingCompletedマッチングフラグが「ブロック」に渡されるflagsにおいて設定されると、何らかの追加の関連したNSMatchingFlagsNSMatchingHitEndNSMatchingRequiredEnd、またはNSMatchingInternalErrorの中から加えます。

NSMatchingProgress and NSMatchingCompleted matching flags have no effect for methods other than this method. NSMatchingProgressNSMatchingCompletedマッチングフラグは、このメソッド以外のメソッドには効果がありません。

The NSMatchingHitEnd matching flag is set in the flags passed to the Block if the current match operation reached the end of the search range. The NSMatchingRequiredEnd matching flag is set in the flags passed to the Block if the current match depended on the location of the end of the search range. 現在のマッチ操作が検索範囲の終端に達するならば、NSMatchingHitEndマッチングフラグが「ブロック」に渡されるflagsにおいて設定されます。現在のマッチが検索範囲の終端の場所に依存するならば、NSMatchingRequiredEndマッチングフラグが「ブロック」に渡されるflagsにおいて設定されます。

The NSMatchingFlags matching flag is set in the flags passed to the block if matching failed due to an internal error (such as an expression requiring exponential memory allocations) without examining the entire search range. マッチングが全ての検索範囲を調べることなく内部エラー(例えば急激に増すメモリ割当てを必要としているある表現)のために失敗するならば、NSMatchingFlagsマッチングフラグがブロックに渡されるflagsで設定されます。

The NSMatchingAnchored, NSMatchingWithTransparentBounds, and NSMatchingWithoutAnchoringBounds regular expression options, specified in the options property specified when the regular expression instance is created, can apply to any match or replace method. 正規表現インスタンスがつくられる時に指定されるoptionsプロパティにおいて指定される、NSMatchingAnchoredNSMatchingWithTransparentBounds、そしてNSMatchingWithoutAnchoringBounds正規表現オプションは、あらゆるマッチまたは置換メソッドに適用できます。

If NSMatchingAnchored matching option is specified, matches are limited to those at the start of the search range. NSMatchingAnchoredマッチング・オプションが指定されるならば、マッチは検索範囲の始まりでのそれらに限られます。

If NSMatchingWithTransparentBounds matching option is specified, matching may examine parts of the string beyond the bounds of the search range, for purposes such as word boundary detection, lookahead, etc. NSMatchingWithTransparentBoundsマッチング・オプションが指定されるならば、語境界検出、先読み検索、などのような目的のために、マッチングは検索範囲の境界を越えて、文字列の一部を調べるかもしれません。

If NSMatchingWithoutAnchoringBounds matching option is specified, ^ and $ will not automatically match the beginning and end of the search range, but will still match the beginning and end of the entire string. NSMatchingWithoutAnchoringBoundsマッチング・オプションが指定されるならば、^$は自動的に検索範囲の始めと終わりにマッチしません、しかし依然として文字列全体の始めと終わりにマッチします。

NSMatchingWithTransparentBounds and NSMatchingWithoutAnchoringBounds matching options have no effect if the search range covers the entire string. 検索範囲が全文字列をカバーするならば、マッチング・オプションNSMatchingWithTransparentBoundsNSMatchingWithoutAnchoringBoundsは効果がありません。

See Also 参照

Searching Strings Using Regular Expressions 正規表現を使った文字列検索