In diesem Fall versuche ich, ein Muster zu schaffen, das alles ABER ein |
oder }}
aber ich würde gerne verstehen, wie dies im Allgemeinen zu tun auch Fall.RegEx versucht, alles außer einem bestimmten Muster mit Zeichen aus dem Muster sein erlaubt
Das I möchte ein beliebiges Zeichen passen beliebig oft und zu stoppen, wenn ich getroffen entweder ein |
oder ein }}
So
[\w\s`[email protected]#\$%\^&\*\(\)-\+=\[\]\\;"',<\.>\/\?\{\}:]*
und zurück, wenn ich getroffen }}
oder |
Was Ich habe derzeit ist:
var regex = /[\w\s`[email protected]#\$%\^&\*\(\)-\+\=\[\]\\;"',<\.>\/\?\{\}\:]*(?!((\|)|(\}\})))/
dann etwas Hänge wie
var str = "abc}}";
str.match(regex)
sollte abc
zurückkehren, aber ich nach Stunden nicht einmal arbeiten, selbst
mit debuggex Dem Problem ich habe, bin ich auch so nur ein einziges }
in meinem Spiel zu haben, erlaubt werden muß, nehmen die \}
aus der ersten Gruppe funktioniert nicht. Ich verstehe nicht einmal, wie das möglich ist und in anderen Ausdrücken muss ich [anything but {{, {:, {{{, |, }}]
erkennen können und ich kann die Logik nicht verstehen, um das zu kodieren. Auch für den Fall, dass ich ein Sonderzeichen verpasst habe, das maskiert werden muss oder einen redundanten Backslash hat, lass es mich wissen.
Ich bin nicht sicher, das funktioniert. Ich denke das Problem ist, dass es immer noch}} als Teil von (. +) – WhiiteRussian
gibt. Gibt es auch einen Grund für den $? Es sollte funktionieren können, auch wenn es nicht das Ende einer Zeichenkette ist, so etwas wie ** fett ** "abc}} 123" ** fett ** würde immer noch nur passen ** fett ** "abc" ** fett, aber es sollte auch in der Lage sein, etwas wie ** fett ** "abc} 123} 456}} x" ** fett ** und Übereinstimmung ** fett ** "abc} 123} 456" ** fett zu behandeln ** – WhiiteRussian
Haben Sie auf "run code snippet" geklickt und sehen, dass es * funktioniert *? Wie ich im zweiten Punkt oben erwähnt habe, ist das '$' Teil einer Unterübereinstimmung, die mit '| * * oder *'}} '* oder * dem Ende der Zeichenkette übereinstimmt. Ich habe meine Antwort bearbeitet, um Ihr Beispiel "abc} 123} 456}} x" 'als einen meiner Testfälle einzuschließen. – nnnnnn