2016-04-19 18 views
0

文字列に対して検索操作を実行したい。例えばのために私は次の文字列完全な単語とスペースを区切って単語を完全にマッチングする方法

こんにちは私の名前はババールであると私は任意の単語は、次のコードを使用して、この文字列かどうかに存在している場合ことを検索したい場合は、私は.NET開発者今

思いを持っています。 午前を一致していることが2単語を返します。この方法で問題が

if(str.Contains("am")) 
{ 
return true; 
} 

があります。結果はです。が正しいですが、私は結果がスペースで区切られた完全な単語であることを望みます。結果としての名前を返すべきではありません。それはその一部ではない完全な単語と一致するはずです。この問題で親切に私を助けてください

+0

スペースで区切り、名前で検索しますか? –

+0

これについて簡単に考えれば、 'str.Contains(" am ")'を使うことができます。 ... –

+1

この正規表現 '\ bam \ b'は単語境界を使って' am'という単語にマッチします。 –

答えて

4

私は最高のソリューションは正規表現だと思います。

はここを見て: C#, Regex.Match whole words

正規表現は、より効率的で、より汎用性があります。 もちろん、それらは時にはスズメの大砲になることがあり、Contains()などを使用する方が良いでしょう。

1

あなたはこれを使用することができます:あなたはおそらくIsMatch方法で正規表現を使用する必要があります

string str = "Hi My name is Babar and I am a.Net developer"; 

     foreach (string s in str.Split(' ').ToArray()) 
     { 
      if (s.Equals("am")) 
      { 
       return true; 
      } 
     } 
1

:文字列が一致するものを持っている場合

Regex.IsMatch("Hi My name is Babar and I am a .Net developer", @"\b(am)\b") 

Trueを返します。

\bは空白を示します。

+0

この回答は正しいです。 '\ b'は"空白スペース "にマッチしませんが、ワード境界に一致します。これは幅の一致がゼロです。 –

関連する問題