2017-04-19 9 views
0

Ich versuche eine Regex zu erstellen, um den ersten Teil der Zeichenfolge als hervorgehoben auszuschließen (die Wörter WASH HANDLING PLANT sind auszuschließen).Regex zum Ausschließen von Wörtern am Anfang der Zeichenfolge

WASH HANDLING PLANTPRODUCT CONVEYOR TAIL END GUARDING

Wenn die Regex ausgeführt wird, ist das Ergebnis:

HANDLING PLANT PRODUKTFÖRDER Schwanzende GUARDING.

Kann jemand bitte beraten, wie ich die Regex zu arbeiten zu bekommen?

Vielen Dank.

var re = new RegExp(/\b(?!WASH\sHANDLING\s[A-z ]{1,3})\b[-A-z0-9 ]{2,90}/); 
+0

hat die Zeichenfolge festes Format? Versuchen Sie 'if (s.slice (0,19) === "WASH HANDLING PLANT") { console.log (s.slice (20)); } '. Oder kann 'PLANT' jedes Wort sein und' WASH HANDLING' sind „Hardcoded“? Dann versuchen Sie '/^WASH\s+HANDLING\s+\w+\s*([\s\S]*)/.exec(s) [1] '. –

+0

Könnten Sie bitte die Anforderungen klären? Was genau kann der erste Teil umfassen? Wenn es keine drei Worte, 'input.replace (/^(\ w + \ s +) {3} /, "")' würde die Arbeit machen. Wenn es genau "WASH HANDLING PLANT" ist, dann ist die Regex noch einfacher. –

+1

Vorsicht, '[A-z]' ist * nicht * entsprechen, was Sie denken. Verwende '[A-Za-z]' oder '[A-Z]' mit dem '/ i' Modifikator. –

Antwort

0

Wenn es buchstäblich die Worte „WASH Behandlungsanlage“, die zu entfernen müssen dann liefert dieses RegEx eine Übereinstimmung

/^(WASH HANDLING PLANT)/ 

die Wörter entfernen verwenden eine String-Funktion wie die folgende Javascript Beispiel ersetzen .. .

mystring.replace(/^(WASH HANDLING PLANT)/, ""); 

Wenn seine aufwändigere und die ersten drei Wörter entfernen, müssen unabhängig dann sollte dies für Sie arbeiten ...

/^(\w+\s){3}/ 

und wieder mit Javascript ersetzen ...

mystring.replace(/^(\w+\s){3}/, ""); 

Um zu erklären, was in der zweiten los ...

^ Spiele den Beginn des Strings. Die Zeichen () bedeuten die Gruppe der Wörter oder Zeichen, die übereinstimmen (Wir stimmen hier nur mit einer Gruppe überein), \w entspricht einem Wort und \s entspricht Leerzeichen. Wir wiederholen dies dreimal mit {3}

+0

Der erste Austausch würde "WASH HANDLING PLANT" vom Ende der "PRODUCT CONVEYOR TAIL END GUARDING WASH HANDLING PLANT" entfernen, was die Anforderung "den ersten Teil der Schnur ausschließen" bricht. –

+0

Guter Punkt @DmitryEgorov. Behoben! –

Verwandte Themen