2016-05-08 18 views
3

Ich habe viel darüber gegoogelt. Was ich versuche zu erreichen, ist der nächste: Ich muss eine Regex-Bedingung einchecken, wenn ein MIME nicht von einem bestimmten Typ ist.Suche nach Übereinstimmung durch Negieren (basierend auf einer fehlenden Zeichenfolge)

Zum Beispiel habe ich die nächste Nachricht recevied:

image/png, image/jpeg, document/pdf 

Ich möchte den document/pdf Teil erkennen, nur , die einen MIME-Typ ist, eine Zeichenfolge, die NICHT mit Bild startet/

Aber egal, wie hart ich sah, versuchte und spielte mit der RegExBody Software, ich kann es nur völlig versagen ..

ich poste in Verzweiflung dies und hofft, anzupassen, dass vielleicht ein Experte regex mir helfen könnte ..

Ich versuchte viele Ansätze, vor allem: Herausfinden der Nicht-Bild-Typ, unabhängig davon, ob es einen gibt oder nicht.

Es weigert sich einfach zu arbeiten. Ich versuchte positive Lookahead und Negatvie Lookahead. Aber ich habe es wahrscheinlich irgendwie falsch benutzt. Ich kann die Beispiele nicht veröffentlichen, weil ich so viele versucht und gelöscht habe. Die eine, die wirklich nah am Arbeiten schien, war \b(?:(?!image/\w+))\w+\b, aber sie bestand nur darauf, den zweiten Teil des nicht passenden Musters auszuwählen. Wenn ich benutze: image/png Er erhält das: png Was bedeutet, dass es immer noch wahr zurückkehren würde, obwohl ich es gemeint image/ Typen zu ignorieren ..

+0

Bitte zeigen Sie uns Beispiel Eingabe und erwartete Ergebnisse/Schlussfolgerungen. –

+0

Bitte fügen Sie den Titeln hier nicht [gelöst] hinzu - das Häkchen gegen die Antwort reicht aus, um die Frage als gelöst zu markieren. Vielen Dank! – halfer

+0

Hallo, wie tut es weh? – SKYFALL26

Antwort

2

Sie einen /\w+ Teil nach \w+ hinzugefügt haben, sollten Sie Ihre String übereinstimmen:

\b(?!image/)\w+/\w+\b 

anzeigen regex demo

Muster Details:

  • \b - Wortgrenze
  • (?!image/) - eine negative Vorschau das Spiel versagt, wenn es image/ direkt nach der aktuellen Position
  • \w+/\w+ - 1+ Wortzeichen mit / gefolgt und wieder 1+ Wortzeichen
  • \b - eine nachlaufende Wortgrenze
  • +1

    Vielen Dank! Schnelle Antwort + es funktioniert! :)) Ich versuche Ihre Antwort als die richtige auszuwählen – SKYFALL26

    +0

    Sie haben, wenn Sie auch meine answe hilfreich finden, bitte erwägen, sie zu upvoting. –

    0

    Dieser reguläre Ausdruck der Suche wird, wenn er durch '' ersetzt wird, Dokument/pdf zurückgeben.

    (?:image\/\w+)[,\s]* 
    
    Verwandte Themen