我正在寻找获得部分字符串并使用HTML注释作为起点/终点的最有效方法。
例如,我想使用
<!-- START: Variable -->
stuff goes here
<!-- END: Variable -->
字符串应该只是注释之间的内容。我已经做了一个帮手,但对.net来说并不是很好。
@helper readPattern(string filepath, string patternSection = null) {
TextReader tr = new StreamReader(filepath);
string SplitBy = "<!-- START: "+patternSection+" -->";
string fullLog = tr.ReadToEnd();
fullLog.Trim().StartsWith("<!-- " + patternSection+ " -->");
//string[] sections = fullLog.Split(new string[] { SplitBy }, StringSplitOptions.RemoveEmptyEntries);
<div class="@patternSection">@fullLog</div>
}
我不需要拆分它,我只需要从我通过这个帮助器的注释中输出或修剪它。
答案 0 :(得分:0)
你需要标记开始和结束,然后抓住它们之间的内容。 “介于两者之间”的范围为start + start string length
,end - (start + start string length)
长度
@helper readPattern(string filepath, string patternSection = null) {
TextReader tr = new StreamReader(filepath);
String SplitBy = "<!-- START: "+patternSection+" -->";
String EndBy = "<!-- END: "+patternSection+" -->";
String fullLog = tr.ReadToEnd();
int start = fullLog.IndexOf(SplitBy);
int end = fullLog.IndexOf(EndBy);
String data = fullLog.Substring(start + SplitBy.Length, end - (start + SplitBy.Length));
<div class="@patternSection">@data</div>
}
顺便说一下,您还想要读者的Close
/ Dispose
。如果我的假设是正确的,并且这个帮助器将反复使用相同的filepath
,那么对于每次调用a而言,缓存文件的内容而不是一遍又一遍地读取它会对你有好处。你打电话给不同的patternSection
。对于其他静态文件,这最终会导致很多文件打开和关闭。