1

私は 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 what you do with @kat」と入力すると、@joey と @kat だけでなく、@joey what you do with @kat と出力されます。

4

6 に答える 6

3

文字列を配列に分割してから、string.containsを使用し@記号を含むアイテムを取得します。

于 2012-04-17T10:59:13.637 に答える
2

で始まる単語を見つけるための単純な正規表現@で十分です。

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);
}
于 2012-04-17T11:13:27.750 に答える
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()
            ));
于 2012-04-17T11:03:41.453 に答える
0
var indexOfRequiredText = this.textBox.Text.IndexOf("@");

if(indexOfRequiredText > -1)
{
    // It contains the text you want
}
于 2012-04-17T10:59:09.407 に答える
0

正規表現を使用して、検索する単語を見つけることができます。

この正規表現を試してください

@\w+
于 2012-04-17T10:59:39.250 に答える
0

正規表現はここでうまく機能します:

var names = Regex.Matches ( "Hi there @joey, i'm with @Kat and @Max", @"@\w+" );

foreach ( Match name in names )
    textBox3.Text += name.Value;
于 2012-04-17T11:05:00.400 に答える