Hilfe mit regex include und exclude

8

Ich hätte gerne Hilfe mit Regex.

Ich versuche, einen Ausdruck zu erstellen, der bestimmte Zeichenfolgen enthält und bestimmte Zeichenfolgen ausschließt.

Zum Beispiel:

Ich möchte eine URL mit der Mobilität http://www.something.com/mobility/

einfügen

Ich möchte jedoch jede URL ausschließen, die den Store http://www.something.com/store/mobility/

enthält

Zu Ihrer Information: Ich habe viele Keywords, die ich verwende. Momentan schließe ich dieses /mobility|enterprise|products/i ein, aber ich finde es nicht in der Lage, Links auszuschließen, die andere Schlüsselwörter enthalten.

Vielen Dank im Voraus für Ihre Hilfe und Ihren Einblick.

_t

    
Tom 15.03.2011, 15:21
quelle

3 Antworten

4

Es ist möglich, all dies in einem Regex zu tun, aber das ist nicht wirklich nötig. Ich denke, Sie haben eine bessere Zeit, wenn Sie zwei separate Tests durchführen: einen für Ihre Include-Regeln und einen für Ihre Ausschlussregeln. Ich bin mir nicht sicher, welche Sprache Sie verwenden. Daher verwende ich JavaScript für das Beispiel:

%Vor%

Wenn Sie dies wirklich in einem Muster tun möchten, versuchen Sie Folgendes:

%Vor%

Das i am Ende bedeutet, dass die Groß- / Kleinschreibung nicht beachtet wird. Verwenden Sie daher das Äquivalent Ihrer Sprache, wenn Sie kein JavaScript verwenden.

Alles was gesagt wird, basierend auf Ihrer Beschreibung des Problems, denke ich, was Sie wirklich wollen, ist String-Manipulation. Hier ist ein Beispiel, wieder mit JS:

%Vor%     
Justin Morgan 15.03.2011, 15:33
quelle
11

Um einen String zu finden, der ein Wort aus einem Satz von Wörtern haben muss, können Sie den positiven Lookahead wie folgt verwenden:

%Vor%

Um eine Zeichenfolge, die ein Wort aus einer Liste von Stoppwörtern enthält, nicht zu finden, können Sie negative Lookahead wie folgt verwenden:

%Vor%

Sie können die beiden obigen Anforderungen in einer einzelnen Regex wie folgt kombinieren:

%Vor%

Rubulärer Link

    
codaddict 15.03.2011 15:29
quelle
2

Machen Sie zwei Regexes für gut und eins für schlecht, und prüfen Sie beide? (zuerst das Schlechte, dann das Gute). Du kannst es mit einer einzigen Regex machen, aber KISS ist immer eine gute Regel ( Ссылка )

Ich füge hinzu, dass Sie das "ass" -Prinzip berücksichtigen müssen ... .*ass stimmt mit ambassador und cassette überein, daher sollten Sie vorher und nachher ein Trennzeichen ( [./\] ) haben jedes Wort. Obscenity Filter: Schlechte Idee oder Unglaublich Intercoursing Bad Idea?

    
xanatos 15.03.2011 15:29
quelle

Tags und Links