RegExpMatch抽象 接口

正则表达式匹配。

正则表达式匹配是 Match 对象。它们还包括检索任何命名捕获组的名称以及通过名称而不是通过索引检索命名捕获组的能力。

示例

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 the 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 the first message.
  // 01:15.57
  // This is the second message.
}
实现类型
注解
  • @Since("2.3")

构造函数

RegExpMatch()

属性

end int
匹配中最后一个字符之后的字符串索引。
没有设置器继承的
groupCount int
返回匹配中捕获组的数量。
没有设置器继承的
groupNames Iterable<String>
pattern 中命名捕获组的名称。
没有设置器
hashCode int
此对象的哈希码。
没有设置器继承的
input String
在此匹配上进行的字符串。
没有设置器继承的
pattern RegExp
input 中搜索时使用的模式。
没有设置器覆盖
runtimeType Type
对象的运行时类型的表示。
没有设置器继承的
start int
匹配开始的字符串中的索引。
没有设置器继承的

方法

group(int group) String?
给定 group 的匹配字符串。
继承的
groups(List<int> groupIndices) List<String>
给定索引的组的列表。
继承的
namedGroup(String name) String?
命名捕获组 name 捕获的字符串。
noSuchMethod(Invocation invocation) → dynamic
在访问不存在的属性时被调用。
继承的
toString() String
该对象的字符串表示形式。
继承的

运算符

operator ==(Object other) bool
等于运算符。
继承的
operator [](int group) String?
根据给定的 group 匹配的字符串。
继承的