Es scheint mir, Sie müssen den Bindestrich zwischen Kleinbuchstaben entfernen.
Verwenden
var s = "Krynica-Zdrój, ul. Uzdro-jowa";
var res = s.replace(/([a-z])-(?=[a-z])/g, "$1");
console.log(res);
Notiere die erste Lookbehind in eine einfache Erfassungsgruppe gedreht und die zweite Look-Ahead ist in Ordnung, da zu verwenden - möglicherweise, wenn es Stücke von Bindestrichen einzelnen Kleinbuchstaben - Es wird in der Lage sein, überlappende Übereinstimmungen zu behandeln.
Einzelheiten:
([a-z])
- Gruppe 1 Erfassung ein Klein ASCII Buchstaben
-
- ein Bindestrich
(?=[a-z])
- das mit einem Klein ASCII Buchstaben gefolgt wird, die nicht zu dem Ergebnis hinzugefügt wird - /g
- ein globaler Modifikator, Suche nach allen Vorkommen des Musters
"$1"
- das Ersetzungsmuster, das nur die Rückreferenz zu dem in Gruppe-1-Puffer gespeicherten Wert enthält.
VBA Beispielcode:
Sub RemoveExtraHyphens()
Dim s As String
Dim reg As New regexp
reg.pattern = "([a-z])-(?=[a-z])"
reg.Global = True
s = "Krynica-Zdroj, ul. Uzdro-jowa"
Debug.Print reg.Replace(s, "$1")
End Sub
ich verwenden möchte ersetzen, um dieses Bindestrich loszuwerden. –
Über/\ b- \ b/g gibt es beide Bindestriche zurück. Über das zweite Muster habe ich keine Ahnung, wie man es zum Laufen bringt, ohne Änderungen erkennt es nichts. –
Ja, ich habe unten eine Lösung zur Verfügung gestellt. Lass mich meinen ersten Kommentar löschen. –