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.
}
- 实现的类型
- 注释
-
@Since("2.3")
相关用法
- Dart RegExp.pattern用法及代码示例
- Dart RegExp.isCaseSensitive用法及代码示例
- Dart RegExp.allMatches用法及代码示例
- Dart RegExp.hasMatch用法及代码示例
- Dart RegExp用法及代码示例
- Dart RegExp构造函数用法及代码示例
- Dart RegExp.stringMatch用法及代码示例
- Dart RegExp.firstMatch用法及代码示例
- Dart RegExp.escape用法及代码示例
- Dart RegExp.isUnicode用法及代码示例
- Dart Rectangle构造函数用法及代码示例
- Dart Rectangle.fromPoints用法及代码示例
- Dart RawSecureSocket.connect用法及代码示例
- Dart Random用法及代码示例
- Dart RtcStatsReport.containsKey用法及代码示例
- Dart RtcStatsReport.containsValue用法及代码示例
- Dart RawReceivePort.handler用法及代码示例
- Dart RuneIterator.moveNext用法及代码示例
- Dart Random.nextDouble用法及代码示例
- Dart Random.nextInt用法及代码示例
- Dart Runes用法及代码示例
- Dart RtcStatsReport.remove用法及代码示例
- Dart RtcStatsReport.putIfAbsent用法及代码示例
- Dart RtcStatsReport.addAll用法及代码示例
- Dart Random.nextBool用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 RegExpMatch class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。