我如何使用正则表达式来解析两个任意字符串之间的文本
本文关键字:任意 两个 字符串 之间 文本 正则表达式 何使用 | 更新日期: 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 + ")");