C# 如果字符串包含

本文关键字:包含 字符串 如果 | 更新日期: 2023-09-27 18:31:33

我正在使用C#,我有2个文本框。如果用户在第一个框中输入文本并按下按钮,则文本副本将进入文本框 2。我现在制作了另一个文本框,我希望它显示包含 @ 的所有字符串(如果用户已输入它们)。
例如
用户输入"嗨,@joey,我和@Kat在一起,@Max"
按下按钮
"嗨,@joey,我和@Kat在一起,@Max"出现在文本框 2
@joey @Kat @Max显示在文本框 3 中。

只是不确定我会怎么做最后一部分。
任何帮助谢谢!.............................................................................................好的,所以我决定去尝试学习如何做到这一点,到目前为止我已经有了这个

string s = inputBx.Text;
             int i = s.IndexOf('@');
            string f = s.Substring(i);
            usernameBx.Text = (f);

这有效,但它会打印带有@符号的单词后面的所有单词。所以就像我要输入"嗨,@joey你对@kat做什么"它会打印@joey你用@kat做什么,而不仅仅是@joey和@kat。

C# 如果字符串包含

我会将字符串拆分为一个数组,然后使用 string.contains 获取包含 @ 符号的项目。

一个简单的

正则表达式来查找以@开头的单词就足够了:

string myString = "Hi there @joey, i'm with @Kat and @Max";
MatchCollection myWords = Regex.Matches(myString, @"'B@'w+");
List<string> myNames = new List<string>();
foreach(Match match in myWords) {
    myNames.add(match.Value);
}

您可以使用正则表达式来查找要搜索的单词。

试试这个正则表达式

@'w+
var indexOfRequiredText = this.textBox.Text.IndexOf("@");
if(indexOfRequiredText > -1)
{
    // It contains the text you want
}

也许不是最整洁的灵魂。但是像这样的事情:

string str="Hi there @joey, i'm with @Kat and @Max";
var outout= string.Join(" ", str
               .Split(' ')
               .Where (s =>s.StartsWith("@"))
               .Select (s =>s.Replace(',',' ').Trim()
            ));

正则表达式在这里可以很好地工作:

var names = Regex.Matches ( "Hi there @joey, i'm with @Kat and @Max", @"@'w+" );
foreach ( Match name in names )
    textBox3.Text += name.Value;