例如,我有这行,我想解析一些文字:
新> 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中的单词之间的文本。
答案 0 :(得分:1)
你必须像这样动态构建你的正则表达式:
Regex r1 = new Regex(startTag + @"([A-Za-z0-9\-]+)" + endTag);
只要开始或结束标记中没有特殊字符,它就会很好。您还必须确保标签是唯一的,并且不会显示在标签之间的任何位置,或者事情会变得更加复杂,具体取决于您希望如何处理。
答案 1 :(得分:1)
使用前瞻和后视:
*.sublime-package