2016-08-09 10 views
-3

Ich möchte Punkt (.) Entfernen, aber ich weiß nicht, wie ich dieses Muster schreiben kann.RegEx zum Entfernen von DOT

Ich habe eine Textzeile dies.

E-1-2-3.1-0-0 oder E-1-2-0-2.5-0 oder E-1-2-0-3.5-0

Aber in meinem Text einige sind Zahlen wie 2,5, 56,7. Ich möchte diese Punkte nicht entfernen, wenn sie Dezimalzahlen sind.

Nur wenn in Zeilen dann muss ich Punkt entfernen. -5.2- wird -52-

E-1-2-3.1-0-0 wird E-1-2-31-0-0
E-1-2-0-2.5-0 wird E-1-2-0-25-0
E-1-2-0-3.5-0 wird E-1-2-0-35-0

sein kann Es innen hat DOT oder nicht.

Hilfe zu diesem Muster?

Antwort

1

Wenn Sie nur Punkte, die durch strich Ziffern- und Ziffern-Strich umgeben passen, versuchen positive lookarounds:

(?<=-\d)\.(?=\d-) 

Demo: https://regex101.com/r/nY7fA9/1


Wenn Sie Punkte durch umgeben übereinstimmen Strich-Ziffern und Ziffern-Strich (jede positive Zahl von Ziffern), die Sache ist schwieriger, da Lookbehinds in vielen Regex-Varianten keine Quantoren unterstützen. In diesem Fall können Sie das Präfix mit einem normalen Regex und sofort zurückgesetzt, das Spiel mit \K:

-\d+\K\.(?=\d+-) 

Demo: https://regex101.com/r/nY7fA9/2

+0

Danke beantworten. Aber wenn Zahlen ändern sich nicht fangen sie. Zum Beispiel, E-1-2-53.1-0-0 oder E-1-2-0-35862.5-0 oder E-1-2-0-23.5-0 Wie können wir das alles fangen - .. ...- beliebige Zahlen mit Punkt –

+0

@HusRKozk, aktualisiert die Antwort –

+0

Sie so viel Kumpel danken ... Es funktioniert .... Sposibo bolshoi :) Eto otlichno ... –