Spec-Zone.ru › Dart 2

dart:core

Класс RegExp

Шаблон регулярного выражения.

Регулярные выражения являются объектами Pattern и, как таковые, могут использоваться для сопоставления строк или частей строк.

Регулярные выражения Dart имеют тот же синтаксис и семантику, что и регулярные выражения JavaScript. Обратитесь к ecma-international.org/ecma-262/9.0/#sec-regexp-regular-expression-objects для спецификации регулярных выражений JavaScript.

Метод firstMatch является основным методом реализации, который применяет регулярное выражение к строке и возвращает первое сопоставление RegExpMatch. Все остальные методы в RegExp могут быть построены на его основе.

Следующий пример находит первое соответствие регулярного выражения в строке.

RegExp exp = RegExp(r'(\w+)');
String str = 'Parse my string';
RegExpMatch? match = exp.firstMatch(str);
print(match![0]); // "Parse"

Используйте allMatches для поиска всех соответствий регулярного выражения в строке.

Следующий пример находит все соответствия регулярного выражения в строке.

RegExp exp = RegExp(r'(\w+)');
String str = 'Parse my string';
Iterable<RegExpMatch> matches = exp.allMatches(str);
for (final m in matches) {
  print(m[0]);
}

Вывод примера:

Parse
my
string

Обратите внимание на использование сырой строки (строки, предваряемой r) в примере выше. Используйте сырую строку, чтобы обрабатывать каждый символ в строке как буквальный символ.

Реализованные типы
  • Pattern

Конструкторы

RegExp(String source, {bool multiLine = false, bool caseSensitive = true, @Since("2.4") bool unicode = false, @Since("2.4") bool dotAll = false})
factory
Создает регулярное выражение.

Свойства

hashCode → int
только для чтения, унаследованное
Код хеширования для этого объекта.
isCaseSensitive → bool
только для чтения
Является ли это регулярное выражение чувствительным к регистру.
isDotAll → bool
@Since("2.4"), только для чтения
Является ли "." в этом регулярном выражении соответствием разделителям строк.
isMultiLine → bool
только для чтения
Соответствует ли это регулярное выражение нескольким строкам.
isUnicode → bool
@Since("2.4"), только для чтения
Является ли это регулярное выражение в режиме Unicode.
pattern → String
только для чтения
Исходная строка регулярного выражения, используемая для создания этого RegExp.
runtimeType → Type
только для чтения, унаследованное
Представление типа выполнения объекта.

Методы

allMatches(String input, [int start = 0]) → Iterable<RegExpMatch>
override
Повторяющееся сопоставление этого шаблона со строкой.
firstMatch(String input) → RegExpMatch?
Находит первое соответствие регулярного выражения в строке input.
hasMatch(String input) → bool
Содержит ли регулярное выражение соответствие в строке input.
matchAsPrefix(String string, [int start = 0]) → Match?
унаследованное
Сопоставление этого шаблона с началом string.
noSuchMethod(Invocation invocation) → dynamic
унаследованное
Вызывается при обращении к несуществующему методу или свойству.
stringMatch(String input) → String?
Подстрока первого соответствия этого регулярного выражения в input.
toString() → String
унаследованное
Строковое представление этого объекта.

Операторы

operator ==(Object other) → bool
унаследованное
Оператор равенства.

Статические методы

escape(String text) → String
Создаёт синтаксис регулярного выражения, который соответствует text.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/RegExp-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API