<matcher>?()
正则表达式在搜索替换的上下文中使用了什么?
string input = "z=""(?<matcher>([a-z]{3,15}))"""
string pattern = z="cat"
string replacement = @"<ANIMAL>${matcher}</ANIMAL>";
string formattedOutput = Regex.Replace(input, pattern, replacement);
表达式评估后,formattedOutput将为“cat”。
答案 0 :(得分:2)
你有很多错误......
以下是更正:
string pattern = @"z=\""(?<matcher>([a-z]{3,15}))\""";
string input = @"z=""cat""";
string replacement = @"<ANIMAL>${matcher}</ANIMAL>";
string formattedOutput = Regex.Replace(input, pattern, replacement);
Console.WriteLine(formattedOutput);
?<matcher>
只是一个命名组。你可以选择任何名字。例如,以下内容是等效的:
string pattern = @"z=\""(?<WHATEVER>([a-z]{3,15}))\""";
string input = @"z=""cat""";
string replacement = @"<ANIMAL>${WHATEVER}</ANIMAL>";
string formattedOutput = Regex.Replace(input, pattern, replacement);
Console.WriteLine(formattedOutput);