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

enumerateMatches(in:options:range:using:)

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

Declaration 宣言

func enumerateMatches(in string: String, 
              options: NSRegularExpression.MatchingOptions = [], 
                range: NSRange, 
                using block: (NSTextCheckingResult?, NSRegularExpression.MatchingFlags, UnsafeMutablePointer<ObjCBool>) -> Void)

Parameters パラメータ

string

The string. 文字列。

options オプション

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

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 range(at:) method. The range {NSNotFound, 0} is returned if one of the capture groups did not participate in this particular match. マッチを特定しているNSTextCheckingResult。この結果は、そのrangeプロパティ経由で全体的なマッチされた範囲を、そしてそのrange(at:)メソッドによって捕獲グループそれぞれの範囲を提供します。捕獲グループの1つがこの特定のマッチに関与しないならば、範囲 {NSNotFound, 0} が返されます。

flags フラグ

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

stop 中止

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

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 true. The stop argument is an out-only argument. You should only ever set this Boolean to true within the Block. 初期状態では、「ブロック」イテレータ・メソッドは「ブロック」を、非nilresultと適切なflagsとともに、各マッチに対して正確に一度だけ呼びます。クライアントは、それからstopの内容をtrueに設定することによって操作を止めることができます。stop引数は、ひとつの退出専用引数です。あなたは、「ブロック」内でこのブールをtrueに設定できるだけであるべきです。

If the reportProgress matching option is specified, the Block will also be called periodically during long-running match operations, with nil result and progress 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 true. reportProgressマッチング・オプションが指定されるならば、「ブロック」はまた長く実行されているマッチ操作の間に定期的に呼ばれることもします、そしてnilの結果でそしてprogressマッチングフラグが「ブロック」のflagsパラメータにおいて設定されると、その時点でクライアントはstopの内容をtrueに設定することによって再び操作を止めることができます。

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

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

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

The NSRegularExpression.MatchingFlags 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. マッチングが全ての検索範囲を調べることなく内部エラー(例えば急激に増すメモリ割当てを必要としているある表現)のために失敗するならば、NSRegularExpression.MatchingFlagsマッチングフラグがブロックに渡されるflagsで設定されます。

The anchored, withTransparentBounds, and withoutAnchoringBounds 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プロパティにおいて指定される、anchoredwithTransparentBounds、そしてwithoutAnchoringBounds正規表現オプションは、あらゆるマッチまたは置換メソッドに適用されます。

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

If withTransparentBounds 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. withTransparentBoundsマッチングオプションが指定されるならば、語境界検出、先読み検索、などのような目的のために、マッチングは検索範囲の境界を越えて、文字列の一部を調べるかもしれません。

If withoutAnchoringBounds 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. withoutAnchoringBoundsマッチングオプションが指定されるならば、^$は自動的に検索範囲の始めと終わりにマッチしません、しかし依然として文字列全体の始めと終わりにマッチします。

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

See Also 参照

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