| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| part of dart.core; |
| |
| /** |
| * An interface for basic searches within strings. |
| */ |
| abstract class Pattern { |
| // NOTE: When using "start" index from the language library, call |
| // without an argument if start is zero. This allows backwards compatiblity |
| // with implementations of the older interface that didn't have the start |
| // index argument. |
| /** |
| * Match this pattern against the string repeatedly. |
| * |
| * If [start] is provided, matching will start at that index. |
| * |
| * The iterable will contain all the non-overlapping matches of the |
| * pattern on the string, ordered by start index. |
| * |
| * The matches are found by repeatedly finding the first match |
| * of the pattern on the string, starting from the end of the previous |
| * match, and initially starting from index zero. |
| * |
| * If the pattern matches the empty string at some point, the next |
| * match is found by starting at the previous match's end plus one. |
| */ |
| Iterable<Match> allMatches(String string, [int start = 0]); |
| |
| /** |
| * Match this pattern against the start of `string`. |
| * |
| * If [start] is provided, it must be an integer in the range `0` .. |
| * `string.length`. In that case, this patten is tested against the |
| * string at the [start] position. That is, a [Match] is returned if the |
| * pattern can match a part of the string starting from position [start]. |
| * Returns `null` if the pattern doesn't match. |
| */ |
| Match matchAsPrefix(String string, [int start = 0]); |
| } |