当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart RegExpMatch用法及代码示例


dart:core 库中RegExpMatch 类的用法介绍如下。

正则表达式匹配。

正则表达式匹配是 Match es,但还包括检索任何命名捕获组的名称以及按名称而不是索引检索命名捕获组的匹配项的能力。

例子:

const pattern =
    r'^\[(?<Time>\s*((?<hour>\d+)):((?<minute>\d+))\.((?<second>\d+)))\]'
    r'\s(?<Message>\s*(.*)$)';

final regExp = RegExp(
  pattern,
  multiLine: true,
);

const multilineText = '[00:13.37] This is a first message.\n'
    '[01:15.57] This is a second message.\n';

RegExpMatch regExpMatch = regExp.firstMatch(multilineText)!;
print(regExpMatch.groupNames.join('-')); // hour-minute-second-Time-Message.
final time = regExpMatch.namedGroup('Time'); // 00:13.37
final hour = regExpMatch.namedGroup('hour'); // 00
final minute = regExpMatch.namedGroup('minute'); // 13
final second = regExpMatch.namedGroup('second'); // 37
final message =
    regExpMatch.namedGroup('Message'); // This is a first message.
final date = regExpMatch.namedGroup('Date'); // Undefined `Date`, throws.

Iterable<RegExpMatch> matches = regExp.allMatches(multilineText);
for (final m in matches) {
  print(m.namedGroup('Time'));
  print(m.namedGroup('Message'));
  // 00:13.37
  // This is a first message.
  // 01:15.57
  // This is a second message.
}
实现的类型

Match

注释

@Since("2.3")

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 RegExpMatch class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。