RegEx String verändern

cityhai

Grünschnabel
Hallo zusammen,

habe mich schon etwas in RegEx eingelesen, nur komme ich nicht weiter.
Und jetzt wäre ich für eure Hilfe dankbar.

Folgendes:

vorher:

Dies.ist.ein.B02D01.Test.txt
Dies.B02D01.ist.ein.Test.txt

So sollte es nachher aussehen:

Dies ist ein - B02D01 - Test.txt
Dies - B02D01 - ist ein Test.txt


RegEx:
Code:
 .([B][0-9]{2,}[D][0-9]{2,}).
Replace:
Code:
 - \1 -

Ergebnis:
Dies.ist.ein - B02D01 - Test.txt
Dies - B02D01 - ist.ein.Test.txt

Wie bekomme ich jetzt noch die Punkte in Leerzeichen getauscht?
 

Yaslaw

n/a
Moderator
Mit den . im Pattern. Suchts du also auch B12D34 in AB12D34? Ansonsten müsstest du die Punkte Maskieren
Code:
\.([B][0-9]{2,}[D][0-9]{2,})\.

Für die restlichen Punkte würde ich einen 2ten RegExp machen.
Code:
Pattern, global: \.(?!txt$)
Replace: Nur ein Leerzeichen
 

cityhai

Grünschnabel
@Yaslaw Besten Dank für deine Antwort.

Pattern....hast du richtet vermutet.
Gibt es eine Möglichkeit den String mit einem einzigen RegExp umzubauen?