Also habe ich eine Zeichenfolge "Ich habe ein großes rotes Auto"
Ich möchte, dass ein Benutzer einen Teil der Zeichenfolge in beliebiger Reihenfolge einfügen kann. So können sie "CAR BIG RED" schreiben und die Saite wird gefunden. Ich weiß, dass ich das tun kann, indem ich mehrere IsMatch-Aufrufe mit einer Regex-Zeichenfolge oder eine Zeichenfolge mit Ankern wie "^(?=.*CAR)(?=.*RED)(?=.*BIG).*$"
verwende. Ich habe mich gefragt, was wäre die beste Option oder gibt es eine noch bessere Option?
Hinweis: Ich verwende C #, also sollte jeder .net Regex funktionieren. Alle Vorschläge sind willkommen.
Wenn Sie den Bereich von Regex verlassen, können Sie Folgendes tun:
%Vor%Sie könnten einfach die Wörter im String anhand der Wörter im Suchstring überprüfen.
Sie könnten Linq dafür verwenden, wenn Sie möchten
Mit RegEx
können Sie alle einzelnen Wörter in eine durch Pipe getrennte Zeichenfolge verketten und mit dem Operator \b
nach den ganzen Wörtern suchen.
Allerdings kann es eine schönere Möglichkeit geben, dies mit RegEx zu tun, ich kenne nur die Grundlagen von RegEx
Sie können auch die Methode Array.FindAll verwenden. Siehe das Beispiel im Link.