我在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。
答案 0 :(得分:3)
我会将Split字符串放入数组中,然后使用string.contains获取包含@符号的项目。
答案 1 :(得分:2)
使用简单的RegEx查找以@
开头的单词应该足够了:
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);
}
答案 2 :(得分:0)
var indexOfRequiredText = this.textBox.Text.IndexOf("@");
if(indexOfRequiredText > -1)
{
// It contains the text you want
}
答案 3 :(得分:0)
您可以使用正则表达式查找您搜索的单词。
试试这个正则表达式
@\w+
答案 4 :(得分:0)
也许不是最好的灵魂。但是这样的事情:
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()
));
答案 5 :(得分:0)
正则表达式在这里运作良好:
var names = Regex.Matches ( "Hi there @joey, i'm with @Kat and @Max", @"@\w+" );
foreach ( Match name in names )
textBox3.Text += name.Value;