如何通过c#StartsWith()方法获取第二个值

如何通过c#StartsWith()方法获取第二个值,c#,.net,C#,.net,如何获取文本**David Diaz在字符串文本中出现的次数 更新了我的问题更新了答案: 听起来你想找出文本中存在子字符串的次数。为此,您需要使用RegEx.Matches,如以下答案所述: 或LINQ,如本答案所述: 原始答案: .StartsWith如果字符串以您提供的搜索字符串开头,则返回true/false。如果您想知道文本中的子字符串存在于何处,则需要在更高级的场景中使用或正则表达式 IndexOf将返回文本中您提供的搜索字符串开始的位置(如果找不到,则返回-1)。使用StartWhi

如何获取文本**David Diaz在字符串文本中出现的次数


更新了我的问题更新了答案: 听起来你想找出文本中存在子字符串的次数。为此,您需要使用RegEx.Matches,如以下答案所述:

或LINQ,如本答案所述:

原始答案:

.StartsWith
如果字符串以您提供的搜索字符串开头,则返回true/false。如果您想知道文本中的子字符串存在于何处,则需要在更高级的场景中使用或正则表达式


IndexOf
将返回文本中您提供的搜索字符串开始的位置(如果找不到,则返回-1)。

使用StartWhith,您可以检查字符串是否以whit开头**如果是,则字符串的前两个单词whit将表示名称

string text = "Today is a good day for help. **David Diaz He went to school.  **David Diaz like apple. ";
更新

正如您在文章中所说的,您希望查看一个字符串中出现了多少个David Diaz,您可以使用正则表达式

        string text = "**David Diaz He went to school.";

        if (text.StartsWith("**"))
        {
            var names = text.Split(' ')
                .Take(2)
                .ToArray();
            var fullName = names[0] + " " + names[1];
        }

你可以在

中尝试,你必须更具体一些。您正在尝试获取前两个单词吗?
StartsWith()
返回
bool
。通过
StartsWith()
,您永远不会得到
字符串。我只想从文本“**大卫迪亚兹”中获取信息。你需要更具体一些。你想一直得到第二个空格之前的东西吗?可能是重复的谢谢你的代码,但我完全是个傻瓜。我的实际文本是string text=“今天是求救的好日子。**大卫迪亚兹他上学了。**大卫迪亚兹喜欢苹果。”;在这段代码中,如何获得字符串文本中有多少**David Diaz?我刚刚做了类似的事情。通过这种方式(感谢您),我可以获得以“bla bla**David Diaz”结尾的arraylist,所以在这个列表中,我需要通过拆分(“*****”)获得**David Diaz?var name=allText.Split('\t').ToArray();请参阅我所做的更新,这应该可以工作。你完全不知道如何使用正则表达式,但这是一种方法(忽略所有奇怪的符号XD)。这太棒了,我正在动态搜索文本。是否可以在文本中搜索以**开头,以\t结尾并将它们添加到字符串列表中?谢谢,伙计,我已经解决了我的问题,一半是你的答案,一半是标记的答案。我没办法选择两个答案,请原谅:)谢谢,但我完全是个哑巴。我的实际文本是string text=“今天是求救的好日子。**大卫迪亚兹他上学了。**大卫迪亚兹喜欢苹果。”;在这段代码中,如何获取字符串文本中有多少**David Diaz?这太棒了,我正在动态搜索文本。是否可以在以**开头、以\t结尾的文本中搜索并将其添加到字符串列表中?@davidiaz这是可以实现的。但根据Stackoverflow规则,每个问题需要问一个问题。为其他问题创建另一个问题。别忘了接受对你有用的答案。这将有助于其他人知道哪个答案解决了你的问题。谢谢,伙计,我已经解决了我的问题,一半是你的答案,一半是丁满的答案。你们太棒了!
  string text = "Today is a good day for help. **David Diaz He went to school. **David Diaz like apple. ";

        int matches = Regex.Matches(
            text,
            @"(?:\S+\s)?\S*David Diaz\S*(?:\s\S+)?",
            RegexOptions.IgnoreCase
        ).Count;
var text = "Today is a good day for help. **David Diaz He went to school. **David Diaz like apple. ";

var pos = 0;
var num = 0;
var search = "**David Diaz";
 while ((pos = text.IndexOf(search, pos)) > -1)
{
    num ++;
    pos += search.Length;
}

Console.WriteLine(num);