如果你的数据模式是不变的,我指的是跨越式的部分(< span style="font-style: italic;" >
)
你为什么不干脆试试GetStringBetween
italic;">(
和,
下面是我写我的使用方法:
public static string GetStringBetween(string input, int searchStartIndex, string startMarker, string endMarker, out int foundAtIndex)
{
foundAtIndex = -1;
if (input == null)
return null;
int st = searchStartIndex;
int startIndex = input.IndexOf(startMarker, st);
if (startIndex < 0)
return null;
int endIndex = input.IndexOf(endMarker, startIndex + startMarker.Length);
if (endIndex < 0)
return null;
int occurenceIndex = startIndex + startMarker.Length;
string data = input.Substring(occurenceIndex, endIndex - occurenceIndex);
foundAtIndex = occurenceIndex;
return data;
}
从searchStartIndex = 0
开始,然后继续调用它与前一个调用中的新的searchStartIndex = foundAtIndex
进行循环。通过这种方式,您将从完整文件中获得所有仅感兴趣的GPS字符串。
为什么使用RegEx而不是简单得多的'string.Split'? – Oded 2011-05-28 08:00:09
@Oded我不认为'string.Split'是一个很好的选择。他想*提取* GPS代码,而不是解析GPS代码本身。 – 2011-05-28 08:12:25
@Oscar - 他的编辑澄清了这一点。之前还不清楚。 – Oded 2011-05-28 08:13:37