Javascript regex-Muster passen mehrere strings ( UND, ODER ) gegen einzelne Zeichenfolge

Brauche ich zum filtern einer Auflistung von Zeichenfolgen basiert auf einem Recht komplexen Abfrage - in seiner "rohen" form sieht es wie folgt aus:

nano* AND (regulat* OR *toxic* OR ((risk OR hazard) AND (exposure OR release)) )

Ein Beispiel für eine der Zeichenfolgen zu entsprechen, gegen:

Workshop on the Second Regulatory Review on Nanomaterials, 30 January 2013, Brussels

So, ich muss mit UND, ODER und wildcard-Zeichen - also, vermute ich, werde ich brauchen, um verwenden Sie einen regulären Ausdruck in JavaScript.

Ich es haben alle looping-richtig filtern und in der Regel arbeiten, aber ich bin mir 100% sicher, dass meine regex falsch ist - und einige Ergebnisse werden ausgelassen falsch - hier ist es:

/(nano[a-zA-Z])?(regulat[a-zA-Z]|[a-zA-Z]toxic[a-zA-Z]|((risk|hazard)*(exposure|release)))/i

Jede Hilfe wäre sehr geschätzt - ich kann wirklich nicht Abstrakt, meine Gedanken richtig zu verstehen, diese syntax!

UPDATE:

Nur wenige Menschen sind darauf aus, die Bedeutung der Reihenfolge, in der die regex aufgebaut ist, aber ich habe keine Kontrolle über die text-strings, die durchsucht werden, also muss ich eine Lösung finden, die arbeiten können unabhängig von der Reihenfolge, oder entweder.

UPDATE:

Schließlich verwendet eine PHP-Lösung, durch Streichung von der twitter-API 1.0, siehe pastebin zum Beispiel die Funktion ( ich weiß, es ist besser zum einfügen von code hier, aber es ist eine Menge... ):

Funktion: http://pastebin.com/MpWSGtHK
Verwendung: http://pastebin.com/pP2AHEvk

Vielen Dank für alle Hilfe

Vielleicht möchten Sie versuchen, eine live-RegExp-Test-tool.
In deinem Beispiel-string, 'nano' kommt nach 'regulatorischen', aber in deinem regex, ist es genau Umgekehrt. Gibt es eine erwartete Muster in diesem, so dass einer immer vor den anderen? Ein paar mehr Beispiele würden helfen, erklären Ihre Anforderung.
gute Beratung, das ist, wie ich so weit gekommen
die Saiten, ich bin ein Abgleich mit anfangs wurden tweets, die von diesem feed: twitter.com/nanoTOES - also, es gibt keine Ordnung, wir versuchen nur um die Anzahl zu reduzieren und erhöhen die Relevanz.
Studio: ich fürchte, du musst mit mehreren wenn-Bedingungen mit & ODER, anstatt zu versuchen zu passen, alles in einer einzigen regex in diesem Fall.

InformationsquelleAutor Q Studio | 2013-02-26

Schreibe einen Kommentar