将子字符串从一个索引提取到另一个索引
Extract substring from one index to another index
VB.NET 有一个 Substring
方法,它将起始索引和子字符串的长度作为参数。是否可以将子字符串从一个索引提取到另一个索引(而不是使用长度)?
例如,如果我有一个字符串 "1 + 1 = 2"
,并且我想提取 +
和 =
之间的所有内容,我希望能够执行类似:
string.Substring(string.IndexOf("+") + 1, string.IndexOf("=") - 1)
我不想使用长度的原因是因为我不确定 +
和 =
之间的数字有多少位。
正则表达式是我唯一的选择还是我遗漏了一些简单的东西?
你已经掌握了计算出你想要的子字符串长度的所有部分。你知道两个端点在哪里。由此,您可以计算出您需要使用的字符数。
Dim Value = "1 + 1 = 2"
Dim Start = Value.IndexOf("+") + 1 '3 in this example
Dim Last = Value.IndexOf("=") - 1 '5 in this example
Dim Length = Last - Start + 1 '5 - 3 + 1 = 3
Dim Result = Value.SubString(Start, Length)
VB.NET 有一个 Substring
方法,它将起始索引和子字符串的长度作为参数。是否可以将子字符串从一个索引提取到另一个索引(而不是使用长度)?
例如,如果我有一个字符串 "1 + 1 = 2"
,并且我想提取 +
和 =
之间的所有内容,我希望能够执行类似:
string.Substring(string.IndexOf("+") + 1, string.IndexOf("=") - 1)
我不想使用长度的原因是因为我不确定 +
和 =
之间的数字有多少位。
正则表达式是我唯一的选择还是我遗漏了一些简单的东西?
你已经掌握了计算出你想要的子字符串长度的所有部分。你知道两个端点在哪里。由此,您可以计算出您需要使用的字符数。
Dim Value = "1 + 1 = 2"
Dim Start = Value.IndexOf("+") + 1 '3 in this example
Dim Last = Value.IndexOf("=") - 1 '5 in this example
Dim Length = Last - Start + 1 '5 - 3 + 1 = 3
Dim Result = Value.SubString(Start, Length)