2016-09-14 1 views
0

Ich bin durch eine Liste von Wörtern durchlaufen und ich muss Wörter finden, die alle gewünschten Zeichen enthalten. Ich weiß, wie man einen Teilstring findet, aber Wörter findet, die die Zeichen nebeneinander haben. Ich möchte etwas erstellen, das bestimmt, ob die Zeichenfolge alle Zeichen enthält, auch wenn sie nicht nebeneinander liegen.Entsprechen alle gewünschten Zeichen in Zeichenfolge, auch wenn sie nicht nebeneinander sind

Zum Beispiel, wenn ich eine Zeichenfolge "Ent" haben, Wörter in der Liste wie "Element", "Nintendo", "Telefon" würde angezeigt.

ich momentan etwas haben diese Logik:

String textLine = "element"; 
Regex regX = new Regex("e|n|t"); 
bool containsAny = regX.IsMatch(textLine); 

Das zur Zeit gibt true zurück, wenn alle Zeichen in der Zeichenfolge vorhanden sind. Ich möchte eine Regex (oder irgendetwas anderes) erstellen, die Wörter findet, die alle gewünschten Zeichen entsprechen. Ich schreibe das in C#.

Danke!

+0

See [* Wie kann man überprüfen, ob eine Zeichenfolge alle Zeichen eines Wortes enthält *] (http://stackoverflow.com/questions/33856104/how-to- check-if-a-string-enthält-alle-der-zeichen-eines-wortes) –

Antwort

1

können Sie Linq verwenden

var desiredChars = "ent"; 
var word = "element"; 
bool contains = desiredChars.All(word.Contains); 
+1

Vielen Dank! –

+0

Kennen Sie eine Möglichkeit, nicht alle, aber mindestens drei davon zu finden? –

+1

@EdwinCoronado 'var count = gewünschterChars.Count (word.Contains);' oder besser 'var count = wishedChars.Intersect (word) .Count();' :) BTW: Bitte erweitere deine Frage nicht mit neuen Anforderungen. .. Überlegen Sie, eine neue Frage zu stellen .... –

Verwandte Themen