我需要取一个字符串,然后在指定的短语之后删除其内容,然后返回剩下的最后一个单词。 在这种情况下,"更多信息"。
基本上,这个脚本应该采用字符串
"Please visit
this
website
for more information if you have questions"
并返回"for"
(请注意,这只是一个例子,字符串可能是任何东西,我故意搞砸了换行符,因为它看起来是一半的时间。)
下面的split方法有效,返回最后一个单词,但substring方法不起作用。
知道我做错了吗?
public static string InfoParse(string input)
{
string extract = input;
extract = input.Substring(0, input.IndexOf("more information"));
extract = extract.Split(' ').Last();
return extract;
}
答案 0 :(得分:1)
更改为:
public static string InfoParse(string input)
{
//string extract = input;
string extract = input.Substring(0, input.IndexOf(" more information"));
extract = extract.Split(' ').Last();
return extract;
}
或者这表示你的代码出了什么问题:
<part>
<spec key="ID" value="aa" />
<spec key="Family" value="bb" />
<spec class="0" key="bb" type="desc" value="30" />
</part>
<part>
<spec key="ID" value="bo" />
<spec key="Family" value="bbc" />
<spec class="1" key="bss" type="desc" value="30" />
</part>
您的拆分返回后的条目最后一个空格,最后一个空格正好是&#34之前的空格;更多信息&#34; - &GT;所以它返回一个空字符串
编辑:现在还有换行
答案 1 :(得分:0)
您可以使用RegularExpression:
using System.Text.RegularExpressions;
string InfoParse(string input, string word)
{
Match m = Regex.Match(input, @"\s?(?<LastBefore>\w+)\s+" + word, RegexOptions.Singleline);
if (m.Success)
return m.Groups["LastBefore"].Value;
return null;
}