使用正则表达式和标签来提取文本的一部分

时间:2010-09-09 19:16:58

标签: .net regex extract

所以我有一个文本文件,其中包含特殊标签,如:

{A1}
Text 1
{A1}

{A2}
Text 2
{A2}

如何使用reg-ex部分Text 2Text 1来从文本中提取? 所以我能够只提取标签A1之间的内容或者只提取标签A2之间的内容...而不是全部......一次! 谢谢!

2 个答案:

答案 0 :(得分:1)

如果您认为文档格式正确且标记未嵌套,则可以使用以下正则表达式执行此操作:

@"({.*?})(.*)\1"

示例:

Regex regex = new Regex(@"({.*?})(.*?)\1", RegexOptions.Singleline);
foreach (Match match in regex.Matches(s)) {
    Console.WriteLine(match.Groups[2].Value.Trim());
}

输出:

Text 1
Text 2

答案 1 :(得分:1)

在C#中你可以这样做:


string output = Regex.Replace(YOUR_TEXT, @"\{(?<Tag>\w+).*?\}(?<text>\w+).*?\{\k<Tag>\}", "$2");

不支持嵌套标记。