Dart Documentationmulti_reg_expMultiRegExp

MultiRegExp class

class MultiRegExp implements RegExp {
 Iterable<RegExp> regExps;

 MultiRegExp(): this.regExps = new List();
 MultiRegExp.fromIterable(Iterable<RegExp> this.regExps);

 Iterable<Match> allMatches(String input) {
   return new MultiRegExpIterable.fromString(this, input);
 }
 Iterable<Match> allMatchesFromStringContainer(StringContainer stringContainer) {
   return new MultiRegExpIterable(this, stringContainer);
 }

 Match firstMatch(String input) {
   //print('--- MultiRegExp: firstMatch "'+input+'"---');
   Match found = null, m;
   for (RegExp regExp in regExps) {
     m = regExp.firstMatch(input);
     //print('RegExp= '+regExp.pattern+'; match= '+(m == null ? 'null' : m[0]));
     if (m != null && (found == null || m.start < found.start)) {
       found = m;
     }
   }
   //print('--- MultiRegExp: firstMatch END ---');
   return found;
 }

 bool hasMatch(String input) {
   for (RegExp regExp in this.regExps) {
     if (regExp.hasMatch(input)) {
       return true;
     }
   }
   return false;
 }

 bool get isCaseSensitive => throw new UnsupportedError('MutliRegExp cannot support isCaseSensitive get');

 bool get isMultiLine => throw new UnsupportedError('MutliRegExp cannot support isMultiLine get');

 Match matchAsPrefix(String string, [int start = 0]) {
   Match found = null, m;
   for (RegExp regExp in this.regExps) {
     m = regExp.matchAsPrefix(string,start);
     if (m != null && (found == null || m.start < found.start)) {
       found = m;
     }
   }
   return found;
 }

 String get pattern => throw new UnsupportedError('MutliRegExp cannot support pattern get');

 String stringMatch(String input) {
   throw new UnsupportedError('MutliRegExp cannot support stringMatch');
 }
}

Implements

RegExp

Constructors

new MultiRegExp() #

Constructs a regular expression.

Throws a FormatException if source is not valid regular expression syntax.

docs inherited from RegExp
MultiRegExp(): this.regExps = new List();

new MultiRegExp.fromIterable(Iterable<RegExp> regExps) #

MultiRegExp.fromIterable(Iterable<RegExp> this.regExps);

Properties

final bool isCaseSensitive #

Whether this regular expression is case sensitive.

If the regular expression is not case sensitive, it will match an input letter with a pattern letter even if the two letters are different case versions of the same letter.

docs inherited from RegExp
bool get isCaseSensitive => throw new UnsupportedError('MutliRegExp cannot support isCaseSensitive get');

final bool isMultiLine #

Whether this regular expression matches multiple lines.

If the regexp does match multiple lines, the "^" and "$" characters match the beginning and end of lines. If not, the character match the beginning and end of the input.

docs inherited from RegExp
bool get isMultiLine => throw new UnsupportedError('MutliRegExp cannot support isMultiLine get');

final String pattern #

The pattern of this regular expression.

docs inherited from RegExp
String get pattern => throw new UnsupportedError('MutliRegExp cannot support pattern get');

Iterable<RegExp> regExps #

Iterable<RegExp> regExps

Methods

Iterable<Match> allMatches(String input) #

Returns an iterable of the matches of the regular expression on input.

docs inherited from RegExp
Iterable<Match> allMatches(String input) {
 return new MultiRegExpIterable.fromString(this, input);
}

Iterable<Match> allMatchesFromStringContainer(StringContainer stringContainer) #

Iterable<Match> allMatchesFromStringContainer(StringContainer stringContainer) {
 return new MultiRegExpIterable(this, stringContainer);
}

Match firstMatch(String input) #

Searches for the first match of the regular expression in the string input. Returns null if there is no match.

docs inherited from RegExp
Match firstMatch(String input) {
 //print('--- MultiRegExp: firstMatch "'+input+'"---');
 Match found = null, m;
 for (RegExp regExp in regExps) {
   m = regExp.firstMatch(input);
   //print('RegExp= '+regExp.pattern+'; match= '+(m == null ? 'null' : m[0]));
   if (m != null && (found == null || m.start < found.start)) {
     found = m;
   }
 }
 //print('--- MultiRegExp: firstMatch END ---');
 return found;
}

bool hasMatch(String input) #

Returns whether the regular expression has a match in the string input.

docs inherited from RegExp
bool hasMatch(String input) {
 for (RegExp regExp in this.regExps) {
   if (regExp.hasMatch(input)) {
     return true;
   }
 }
 return false;
}

Match matchAsPrefix(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.

docs inherited from Pattern
Match matchAsPrefix(String string, [int start = 0]) {
 Match found = null, m;
 for (RegExp regExp in this.regExps) {
   m = regExp.matchAsPrefix(string,start);
   if (m != null && (found == null || m.start < found.start)) {
     found = m;
   }
 }
 return found;
}

String stringMatch(String input) #

Returns the first substring match of this regular expression in input.

docs inherited from RegExp
String stringMatch(String input) {
 throw new UnsupportedError('MutliRegExp cannot support stringMatch');
}