我如何使用正则表达式解析两个字符串之间的文本?

时间:2015-06-04 19:14:29

标签: c# .net

例如,我有这行,我想解析一些文字:

新> Android> Android应用程序

这是正在尝试使用的正则表达式:

private List<string> ExtractFromString(string s, string startTag, string endTag)
        {
            var names = new List<string>();

            Regex r1 = new Regex(@"One([A-Za-z0-9\-]+)Three");

            return names;
        }

但相反,我需要它来使用startTag而不是使用endTag。 在示例行中,startTag可能是第一个Android单词,但在其他情况下,它可能是第二个Android单词,也许可能有一些情况,在startTag和endTag中有更多相同的单词,这个想法也知道要解析startTag和endTag中的单词之间的文本。

2 个答案:

答案 0 :(得分:1)

你必须像这样动态构建你的正则表达式:

Regex r1 = new Regex(startTag + @"([A-Za-z0-9\-]+)" + endTag);

只要开始或结束标记中没有特殊字符,它就会很好。您还必须确保标签是唯一的,并且不会显示在标签之间的任何位置,或者事情会变得更加复杂,具体取决于您希望如何处理。

答案 1 :(得分:1)

使用前瞻和后视:

*.sublime-package