Класс 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) в примере выше. Используйте сырую строку, чтобы обрабатывать каждый символ в строке как буквальный символ.
- Реализованные типы
Конструкторы
-
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