Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Unified Diff: sdk/lib/core/pattern.dart

Issue 1498963004: Move the `Match` class from core/regex.dart to core/pattern.dart (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sdk/lib/core/regexp.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/core/pattern.dart
diff --git a/sdk/lib/core/pattern.dart b/sdk/lib/core/pattern.dart
index f47ba156df73e3b40806924ff25986f19e194b89..7f32c7259193813479a861d1930189e7337295d7 100644
--- a/sdk/lib/core/pattern.dart
+++ b/sdk/lib/core/pattern.dart
@@ -42,3 +42,90 @@ abstract class Pattern {
*/
Match matchAsPrefix(String string, [int start = 0]);
}
+
+/**
+ * A result from searching within a string.
+ *
+ * A Match or an [Iterable] of Match objects is returned from [Pattern]
+ * matching methods.
+ *
+ * The following example finds all matches of a [RegExp] in a [String]
+ * and iterates through the returned iterable of Match objects.
+ *
+ * RegExp exp = new RegExp(r"(\w+)");
+ * String str = "Parse my string";
+ * Iterable<Match> matches = exp.allMatches(str);
+ * for (Match m in matches) {
+ * String match = m.group(0);
+ * print(match);
+ * }
+ *
+ * The output of the example is:
+ *
+ * Parse
+ * my
+ * string
+ *
+ * Some patterns, regular expressions in particular, may record subtrings
+ * that were part of the matching. These are called _groups_ in the Match
+ * object. Some patterns may never have any groups, and their matches always
+ * have zero [groupCount].
+ */
+abstract class Match {
+ /**
+ * Returns the index in the string where the match starts.
+ */
+ int get start;
+
+ /**
+ * Returns the index in the string after the last character of the
+ * match.
+ */
+ int get end;
+
+ /**
+ * Returns the string matched by the given [group].
+ *
+ * If [group] is 0, returns the match of the pattern.
+ *
+ * The result may be `null` if the pattern didn't assign a value to it
+ * as part of this match.
+ */
+ String group(int group);
+
+ /**
+ * Returns the string matched by the given [group].
+ *
+ * If [group] is 0, returns the match of the pattern.
+ *
+ * Short alias for [Match.group].
+ */
+ String operator [](int group);
+
+ /**
+ * Returns a list of the groups with the given indices.
+ *
+ * The list contains the strings returned by [group] for each index in
+ * [groupIndices].
+ */
+ List<String> groups(List<int> groupIndices);
+
+ /**
+ * Returns the number of captured groups in the match.
+ *
+ * Some patterns may capture parts of the input that was used to
+ * compute the full match. This is the number of captured groups,
+ * which is also the maximal allowed argument to the [group] method.
+ */
+ int get groupCount;
+
+ /**
+ * The string on which this match was computed.
+ */
+ String get input;
+
+ /**
+ * The pattern used to search in [input].
+ */
+ Pattern get pattern;
+}
« no previous file with comments | « no previous file | sdk/lib/core/regexp.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698