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

本文关键字:任意 两个 字符串 之间 文本 正则表达式 何使用 | 更新日期: 2023-09-27 17:53:32

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

New> Android> Android Application

这是我试图使用的正则表达式:

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中单词之间的文本

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

你只需要像这样动态地构建你的正则表达式:

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

只要在开始或结束标记中没有特殊字符就可以。你还必须确保标签是唯一的,不要出现在标签之间的任何地方,否则事情会变得更复杂,这取决于你想要如何处理

使用前向和后向:

Regex regex = new Regex("(?=" + startTag + ")[A-Za-z0-9'-]+(?<=" + endTag + ")");