我有一个非常讨厌的字符串,看起来像这样(不是代码呈现HTML,而是字符串):
<div class='isc-content-block' data-contentmanagerid='60dd19b0-e3ba-4629-935c-a2dd00e052b8' data-contentmanagername='Product: B456009805'>456009806</div>
我需要获取值,数字显示为“456009806”。 修剪此字符串以删除标记的最佳方法是什么,所以剩下的就是内部的数字?
答案 0 :(得分:3)
此解决方案没有第三方依赖。如果您每次都知道HTML格式,并且不是非常复杂的过程,那么请使用简单的Regex并进行相应的调整。
简单的解决方案:
var result = Regex.Match("<div class='isc-content-block' data-contentmanagerid='60dd19b0-e3ba-4629-935c-a2dd00e052b8' data-contentmanagername='Product: B456009805'>456009806</div>", ">(.*)</.*>");
result.Groups[1].Value
会给你:
456009806
更新:
此外,使用Substring,标准Regex和Compiled正则表达式运行一些性能测试是非常了不起的。我尽力使用抖动预热代码并使用StopWatch
中的刻度来获得准确的结果。
以下是结果图:
答案 1 :(得分:1)
RegEx it,或者如果你赶时间:
// Assuming s is your string
string result = s.Substring(s.IndexOf(">") + 1).Replace("</div>", string.Empty);
希望这会有所帮助;)
答案 2 :(得分:0)
var str = @"<div class='isc-content-block' data-contentmanagerid='60dd19b0-e3ba-4629-935c-a2dd00e052b8' data-contentmanagername='Product: B456009805'>456009806</div>";
Regex regex = new Regex("<.*?>");
var justnumstr = regex.Replace(str, string.Empty);
这将导致justnumstr
包含456009806