2012-05-11 4 views
1

私はドメインのリストでこのテキストファイルを読むプログラムを作成しようとしていますが、タイトル、各ドメインのヘッダーなど、他の多くの不必要なものもたくさんあります。単語に文字列内の文字が含まれているかどうかを確認する方法は?

ここで共通する点は、すべてのドメインに「。」が付いていることです。どこか2つか。その.txtファイルのワードに "。"があるかどうかを確認してから別の文字列に追加する方法はありますか?

私は周りを見回したが、私は唯一の文字列は単語が含まれている、いない含まれていました。それが存在しない場合

次に、文字列配列内の各単語を分離した後、forループで個別の単語をテストする方法はありますか?

はここでの例です:それはない場合

Domain list name the first domain ip magicdomain.com name the second domain ip magicdomain2.com 
etc. 
+1

サンプルのtxtファイルの内容を教えてください。 – daryal

+0

そのようなデータはすべて1行にありますか? –

+0

そうですね。私にとっては不幸です:( – Hexo

答えて

1

このコード考えてみましょう:どのように取得する:文字列

チェック」正規表現から単語を取得するために必要なcharの

を各単語をチェック超える文字列内の単語を取得します

 var words = text.Split(" "); 

     foreach (var word in words) 
      if (word.Contains("lookup")) 
       Console.WriteLine("found it"); 
+0

これは私が探しているものと全く同じように見えます(私の2番目の選択肢) – Hexo

+0

@Hexo awesome :) – animaonline

+1

ありがとうございました、完璧に働いています:D – Hexo

0

string.IndexOfは、文字または文字列が存在する場合や-1に渡されたのインデックスを返します。

if(word.IndexOf('.') > -1) 
{ 
    // got a `.` do something with word 
} 
0

を文字列からの言葉(C#の)」Link

1

か、正規表現FOを使用することができますそれで。 「ドメイン名の正規表現」のためのGoogleの、私はSO関連this lib便利

が見つかりました:Using a C# regex to parse a domain name?

+1

私は問題があったので、正規表現を使って解決しました...今は2つの問題があります。 –

+0

Regexは独自の問題を抱えていますが、一度Regex形式を正しく入力すると、魅力的に機能します! –

+0

私は彼らが有用ではないと言っているわけではありません...しかし、彼がやっていることすべてが 'を探しているなら、この状況では遅くなり過ぎます。入力データに構造があれば、より単純な解決策があると思います。 –

0

は、あなただけのドメイン部分が.

が含まれていることを確認しています区切るために使用される任意の区切り文字の文字があります同じ行の他の情報

サンプルデータの一部を見ることなく何かを提案するのは難しいですが、ドメインの場合は常に最初の行になり、その後にスペースが続きます。サブストリング& IndexOfの組み合わせを使用して、最初のトークンを取得することができます。

line.Substring(0, line.IndexOf(' ')) 

またあなたには、いくつかのseperaor文字に基づいて行をトークン化するstring.Split()メソッドを使用することができます。

サンプルデータを投稿できますか?

+0

うん、ちょうどそれを掲示。 – Hexo

関連する問題