正则表达式匹配。
正则表达式匹配是 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")
构造函数
属性
- end → int
- 匹配中最后一个字符之后的字符串索引。没有设置器继承的
- groupCount → int
- 返回匹配中捕获组的数量。没有设置器继承的
-
groupNames → Iterable<
String> - pattern 中命名捕获组的名称。没有设置器
- hashCode → int
- 此对象的哈希码。没有设置器继承的
- input → String
- 在此匹配上进行的字符串。没有设置器继承的
- pattern → RegExp
- 在 input 中搜索时使用的模式。没有设置器覆盖
- runtimeType → Type
- 对象的运行时类型的表示。没有设置器继承的
- start → int
- 匹配开始的字符串中的索引。没有设置器继承的
方法
运算符
-
operator ==(
Object other) → bool - 等于运算符。继承的
-
operator [](
int group) → String? - 根据给定的
group
匹配的字符串。继承的