當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。