2016-03-19 5 views
0

Ich bin mit dem folgenden regex großem Zeichenfolge filtern:C# folgende RegEx zu langsam auf großer Zeichenfolge

(?m)(?(^*(?=.*\\btrue\\b)(?=.*\\ba\\b).*\\r*$)(.*)|(?!)) 

Es immer so tun nimmt. Was mache ich hier falsch? ist es ein Problem mit meinem Muster oder eine Länge der Zeichenfolge, die eine Verzögerung verursacht.

Bitte helfen Sie mir hier. Vielen Dank im Voraus.

+3

Das ist nicht eine gültige regex ist, so könnte es etwas mit ihm nicht zu tun haben, zu wissen, wie um es richtig zu analysieren. Und wie lange von einer Schnur redest du? – Dispersia

+0

Meine Zeichenfolge Daten enthalten ungefähr 1 Million Zeichen. Es ist nicht, dass es nicht funktioniert, nur dass es dauert 9-10 Sekunden, um es zu tun. –

+0

könnte viel schneller sein, Regex nicht zu verwenden, sondern einfach das Parsen selbst manuell behandeln. –

Antwort

0

OK Ich fonund diese Regex funktioniert für mehrere Wörter (Hier verwende ich 2 Worte Bedingung) mit AND-Operator und Geschwindigkeit ist gut im Vergleich zu meinem alten RegEx die @Dispersia wies als falsch RegEx. Seltsam, dass sogar, dass man gearbeitet, aber nehmen für immer zu produzieren

(?i)(?m)^((?=.*\bword1\b)(?=.*\bword2\b)).*[\r\n]*$. 

Hier ist der Screenshot des Ergebnisses führen: enter image description here

Verwandte Themen