从字符串中检索特定文本部分的最有效方法是什么

What is the most efficient way to retrieve a particular section of text from a string

考虑对某些 xml return 服务执行的搜索的以下结果集。

我需要从中提取 internalref 属性的值(它位于所示消息框表示的最后一行的末尾)。首先,当我得到它时,它不再有效 xml 而是一个字符串。其次,它可能不包含内部引用值(这一点至少很容易,我可以检查是否 resultset.contains("internalref")).

因此,假设它确实存在,我可以进行索引搜索,提供 internalref 开始的索引,根据定义,我可以向其添加 13 以使我到达我感兴趣的位的开始。

以此为起点,我可以搜索下一个引号的索引,然后 return 索引点之间的字符。

我忍不住认为可能有一种更简单的方法可以做到这一点,但我把事情搞得太复杂了。对 internalref 存在的初始检查是给定的,但如果有更简单的方法来提取随后引号之间的字符串位,我很想知道如何去做。我想要的数字(是的,它需要转换,但这不是问题,可以是 1 到 15 个字符的任何长度。

这次我更愿意使用 XML、SelectNode 和 XPath 进行解析,但这里有一个快速而粗略的方法应该可以工作。假设你已经确定 internalref= 存在并且没有空格,那么试试:

Dim i As Integer = CInt(Val(Split(s, "internalref=""")(1)))

我假设该数字是一个整数,但如果它是双精度数,则删除对 CInt 的调用。

Dim i As double = Val(Split(s, "internalref=""")(1))