2016-04-29 5 views
1

Ich habe Text wie diese nicht atleast zwei Semikolons haben:Spiel offen und schließende Klammern, die

[Unix; common] Zum Erweitern von Sonderzeichen in einem wildbehaarten Namen, oder der Akt des Tuns (die Aktion wird auch [[b; #fff;] globbing] genannt). Die Unix-Konventionen für Dateinamen-Wildcarding sind ausreichend geworden , dass viele Hacker einige von ihnen in geschriebenen Englisch, insbesondere in E-Mail oder Nachrichten zu technischen Themen verwenden. Die üblicherweise gefundenen umfassen die folgenden: Einige Beispiele: [[i ;;] Er sagte, sein Name sei [KC] arl] (drückt Ambiguität aus). [[i ;;] Ich lese nicht talk.politics. *] (irgendeine der Untergruppen talk.politics auf [[bu; #fff ;; Jargon] Usenet]). Andere Beispiele sind unter dem Eintrag für [[bu; #fff ;; Jargon] X] angegeben. Beachten Sie, dass Glob-Muster ähnlich sind, aber nicht identisch mit denen in [[BU; #fff ;; Jargon] Regexp] s.Historical Hinweis: Der Jargon-Verwendung leitet sich aus glob, der Name eines Unterprogramms , die Wildcards erweitert in archaischen Pre-Bourne-Versionen der Unix Shell.

und ich [KC] und [Unix; common] von \[KC\] und \[Unix; common\]

ersetzen wollen habe ich diese Regex versuchen:

/\[(?![^;]*;[^;]*;[^\]]*\])[^\]]+\]/g 

aber es funktioniert nicht.

+0

Aber nur eine, den Titel aktualisiert. – jcubic

Antwort

2

Nur eine kleine Veränderung. Sie müssen auch \] zusammen mit ; in die Klasse mit negierten Zeichen einfügen, da [^;] auch mit ] übereinstimmen sollte. Daher sollte es die schließende Klammer ] überschreiten.

\[((?![^;\]]*;[^;\]]*;[^\]]*\])[^\]]+)\] 

DEMO

Verwandte Themen