Trim 特定字符前后的字符串
Trim a string before and after certain characters
我有一个非常讨厌的字符串,看起来像这样(不是实际呈现 HTML,而是 字符串 ):
<div class='isc-content-block' data-contentmanagerid='60dd19b0-e3ba-4629-935c-a2dd00e052b8' data-contentmanagername='Product: B456009805'>456009806</div>
我需要获取值,显示为“456009806”的数字。
trim 这个字符串删除标签的最佳方法是什么,所以剩下的就是里面的数字?
此解决方案不依赖第三方。如果您每次都知道 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
更新:
此外,运行 一些使用子字符串、标准正则表达式和编译正则表达式的性能测试非常惊人。尽我最大努力通过抖动预热代码和使用 StopWatch
.
中的刻度来获得准确的结果
这是结果的图片:
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
的字符串
正则表达式,或者如果你赶时间:
// Assuming s is your string
string result = s.Substring(s.IndexOf(">") + 1).Replace("</div>", string.Empty);
希望对您有所帮助 ;)
我有一个非常讨厌的字符串,看起来像这样(不是实际呈现 HTML,而是 字符串 ):
<div class='isc-content-block' data-contentmanagerid='60dd19b0-e3ba-4629-935c-a2dd00e052b8' data-contentmanagername='Product: B456009805'>456009806</div>
我需要获取值,显示为“456009806”的数字。 trim 这个字符串删除标签的最佳方法是什么,所以剩下的就是里面的数字?
此解决方案不依赖第三方。如果您每次都知道 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
更新:
此外,运行 一些使用子字符串、标准正则表达式和编译正则表达式的性能测试非常惊人。尽我最大努力通过抖动预热代码和使用 StopWatch
.
这是结果的图片:
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
正则表达式,或者如果你赶时间:
// Assuming s is your string
string result = s.Substring(s.IndexOf(">") + 1).Replace("</div>", string.Empty);
希望对您有所帮助 ;)