2016-07-11 11 views
0

Ich habe viele Muster, die passende Zeichenfolge in vielen String-Arrays finden und sie durch "NON" Zeichenfolge ersetzen möchten. zum Beispiel, wenn wir haben:Wie Regexp zum Suchen von Mustern in Strings verwenden?

str[0]={"this","is","a simple","text","for","example","."}; 
str[1]={"Can","you","help me","please","?","thank","you","very much"}; 
string[] patterns={"the","that","(eg width)","123",",","text","for example","help me","very much"}; 

abgestimmte Muster in str Ersetzen Sie [i] mit "NON" ist der Wunsch Ergebnis:

str[0]={"this","is","a simple","NON","NON","NON","."}; 
str[1]={"Can","you","NON","please","?","thank","you","NON"};` 

Wie kann ich es tun?

Danke.

+0

Sind NN und NUN gedacht? Wenn ja, können Sie eine Regel für diese Art von Transformation bereitstellen? – Goufalite

+0

Wie ist das "Beispiel" in Ihrem ... Beispiel? Im Quell-String-Array (str [0]) sind die Wörter zwei verschiedene Elemente? – Sehnsucht

+0

Ich habe sie bearbeitet. Jedes Match in str wird durch NON ersetzt. –

Antwort

0

Wenn Sie eine mutierende Lösung wünschen:

public void ReplaceStrs(string[] srcStrs, string[] patterns, string changeTo) 
{ 
    for (int i=0; i < srcStrs; i++) { 
     if (Array.IndexOf(patterns, toChange[i]) >= 0) { 
      srcStrs[i] = changeTo; 
     } 
    } 
} 

Nicht mutierende:

public string[] ReplaceStrs(string[] srcStrs, string[] patterns, string changeTo) { 
    srcStrs.Select(s => Array.IndexOf(patterns, s) >= 0 ? changeTo : s).ToArray(); 
} 
+0

Vielen Dank für die Antwort, Was ist ToChange? Ich glaube nicht, dass deine Codes mein Problem lösen. –

0

Ein Motto nur zum Spaß:]

str = Array.ConvertAll(str, a => Array.ConvertAll(a, i => patterns.Contains(i) ? "NON" : i)); 
Verwandte Themen