我有以下字符串:
This isMyTest testing
结果我想得到 isMyTest 。我只有两个可用的第一个字符(“is”)。单词的其余部分可能会有所不同。
基本上,我需要选择以 chk 开头的由空格分隔的第一个单词。
我从以下开始:
if (text.contains(" is"))
{
text.LastIndexOf(" is"); //Should give me index.
}
现在我找不到这个词的正确边界,因为我需要匹配类似的东西
我有以下字符串:
This isMyTest testing
结果我想得到 isMyTest 。我只有两个可用的第一个字符(“is”)。单词的其余部分可能会有所不同。
基本上,我需要选择以 chk 开头的由空格分隔的第一个单词。
我从以下开始:
if (text.contains(" is"))
{
text.LastIndexOf(" is"); //Should give me index.
}
现在我找不到这个词的正确边界,因为我需要匹配类似的东西
您可以使用正则表达式:
字符串模式 = @"\bis"; string input = "这是我的测试测试"; 返回正则表达式匹配(输入,模式);
您可以使用IndexOf获取下一个空间的索引:
int startPosition = text.LastIndexOf(" is");
if (startPosition != -1)
{
int endPosition = text.IndexOf(' ', startPosition + 1); // Find next space
if (endPosition == -1)
endPosition = text.Length - 1; // Select end if this is the last word?
}
使用正则表达式匹配怎么样?通常,如果您要在字符串中搜索模式(即以空格开头,后跟其他字符),则正则表达式非常适合这种情况。Regex 语句实际上只在上下文敏感区域(例如 HTML)中崩溃,但非常适合常规字符串搜索。
// First we see the input string.
string input = "/content/alternate-1.aspx";
// Here we call Regex.Match.
Match match = Regex.Match(input, @"[ ]is[A-z0-9]*", RegexOptions.IgnoreCase);
// Here we check the Match instance.
if (match.Success)
{
// Finally, we get the Group value and display it.
string key = match.Groups[1].Value;
Console.WriteLine(key);
}