我有一个包含特殊标签的文本文件,例如:
{A1}
Text 1
{A1}
{A2}
Text 2
{A2}
我该如何使用正则表达式从文本中提取出
Text 2
或Text 1
?我想只提取A1标签之间的内容或者只提取A2标签之间的内容,而不是一次性提取所有内容!谢谢!如果您假设文档格式正确,且标签未嵌套,则可以使用以下正则表达式完成:
@"({.*?})(.*)\1"
例子:
Regex regex = new Regex(@"({.*?})(.*?)\1", RegexOptions.Singleline);
foreach (Match match in regex.Matches(s)) {
Console.WriteLine(match.Groups[2].Value.Trim());
}
输出:
文本1 文本2
string output = Regex.Replace(YOUR_TEXT, @"\{(?<Tag>\w+).*?\}(?<text>\w+).*?\{\k<Tag>\}", "$2");
不支持嵌套标签。