E0058#
警告名称:unused_non_capturing
正则表达式中存在不必要的非捕获分组。
当正则表达式包含不需要的非捕获分组时发出此警告。可删除多余分组以简化正则。
错误示例#
///|
test {
let text = "xxabcyy"
if text =~ (re"a(?:b)c", before~, after~) {
inspect(before, content="xx")
inspect(after, content="yy")
} else {
fail("")
}
}
建议#
移除多余的非捕获分组。如果需要使用匹配到的部分,请用 as 绑定该正则子表达式。正则命名捕获组可通过 Regex::execute 和 MatchResult::named_group 获取,但它们不是 =~ 表达式中的绑定项:
///|
test {
let text = "xxabcyy"
if text =~ (re"a" + (re"b" as middle) + re"c", before~, after~) {
inspect(before, content="xx")
inspect(middle, content="b")
inspect(after, content="yy")
} else {
fail("")
}
}