2012-06-05 53 views
-1
using Visual.Web.Developer.2010.Express; 

N00B這裏,
我怎麼會做一個搜索實例爲string1文本的每一行的每個項目創建的正則表達式搜索實例?我想搜索string2以查看string2中每個項目的搜索實例是否包含string1's的1行文本。 string1string2都具有由'\n'分隔的文本行。有沒有一些明顯的方法來做到這一點?有人建議使用正則表達式,但是如何結合RegEx查找並打印出中每個項目的string2中的匹配項.中有多少個與string1中的單個項目相關的實例。

在一個字符串

幾個在string1
Part_numbers
1017FOO
1121BAR
等...

A有幾個string2
SUPERCOLA一個51661017FOOAINDO
DASUDAMAÇ89891121BARBLO5W
等...

可能將後摸不着頭腦,但我希望他們能夠使用此格式,只是FYI

1017FOO匹配:
SUPERCOLA一個51661017FOOAINDO
+另一個1017FOO匹配+
等...

在此先感謝!
尋找在正確的方向,指點什麼方法,我應該使用

+0

你到目前爲止嘗試過什麼?附:第一種也是最明顯的方法是使用字符串方法的屬性(即'String.IndexOf')。我會**強烈**建議您顯示一些代碼。 – Kiril

+0

-1爲質量的問題 - 沒有代碼,非常不好的樣本值,隨機無關的文本,如「可能會在稍後找出」。 –

回答

3

你的要求寫,所以我沒有使用它們不需要正則表達式。你應該能夠很容易地將它們合併,如果你需要...

string partNumbers = @"1017Foo 
1121BAR 
SomethingElse"; 
string searchText = @"SUPERCOLA A 51661017FOOAINDO 
DASUDAMA C 89891121BARBLO5W"; 

string[] searchTerms = partNumbers.Split('\n'); 
string[] searchedLines = searchText.Split('\n'); 

StringBuilder output = new StringBuilder(); 

foreach(string searchTerm in searchTerms){ 
    int matchCount = 0; 

    output.AppendLine(string.Format("For term: {0}", searchTerm.Trim())); 
    foreach(string searchedLine in searchedLines){ 
     if(searchedLine.Trim().ToLower().Contains(searchTerm.Trim().ToLower())){ 
      output.AppendLine(searchedLine.Trim()); 
      matchCount++; 
     } 
    } 

    if(matchCount == 0){ 
     output.AppendLine("There was no match"); 
    } 

    output.AppendLine("== End of search =="); 
} 

Console.WriteLine(output.ToString());