2016-05-15 12 views
0

ich versuchen, meine Situation mit einem Beispiel zu erklären, die folgende Zeichenfolge betrachten:Regex für einige Charaktere kombinieren, die später weggelassen werden sollte

03 - The-Basics-of-Querying-the-Dom.mov

Ich brauche alle - s (Bindestriche) entfernen ohne der nach den Ziffern. Mit anderen Worten, alle Bindestriche zwischen den Wörtern.

Dies ist die REGEX ich erstellt: /([^\s])\-/. Aber das Problem ist, wenn ich versuche zu ersetzen, wird das Zeichen vor dem Leerzeichen auch entfernt.

Nach dem Ergebnis, das ich das Ziel bin für:

03 - The Basics of Querying the Dom.mov

Denkt ich so etwas ausschließen Gruppen verwenden kann? Ich habe versucht, ?: & ?! in der Erfassungsgruppe zu verwenden, um zu vermeiden, dass es abgeglichen wird, aber gab keine positiven Ergebnisse.

+0

'/ (? <= [az]) - (? = [az])/gi' https://regex101.com/r/pZ6tE2/1 –

+1

'(?

+0

Warum nicht [Wortgrenzen] (https: // regex101. com/r/xB3pO8/2) –

Antwort

0

ich Ihre bereits vorgeschlagen RegEx nur modifiziert durch eine positive Lookbehind mit (die nur die richtige Position behauptet):

/(?<=[^\s])\-/