从字符串中解析文本时如何解析排除“alt=\”?

问题描述 投票:0回答:1

字符串示例:alt="hello world">" 我只想使用indexof和子字符串来获取hello world。

int indexDescription = line.IndexOf("alt=");
int indexDescriptionEnd = line.IndexOf("\" >");
string descriptionResult = line.Substring(indexDescription, indexDescriptionEnd - indexDescription);

结果是:“alt=”hello world”

我不知道如何摆脱“alt=
我试过:

string descriptionResult = line.Substring(indexDescription + 6, indexDescriptionEnd - indexDescription);

但是他给出了异常错误:

System.ArgumentOutOfRangeException:'索引和长度必须引用字符串中的位置。 参数名称:长度'

c# substring indexof
1个回答
0
投票

String.IndexOf 将返回传递的字符串第一次出现的索引。如果传递的字符串超过 1 个字符,则索引是该字符串的第一个字符的位置。对于字符串“alt=”的示例,第一次出现在字符串的开头,因此索引为 0。您需要将

"alt=\""
的长度添加到
indexDescription
中。比如:

int indexDescription = line.IndexOf("alt=\"") + "alt=\"".Length;
int indexDescriptionEnd = line.IndexOf("\" >");

string descriptionResult = line.Substring(indexDescription, indexDescriptionEnd - indexDescription)

请记住,这个问题非常微不足道,它只适用于您提供的假设(即所有字符串都与您所描述的完全一样)

© www.soinside.com 2019 - 2024. All rights reserved.