2016-08-09 3 views
-3

Je veux enlever le point (.) Mais je ne sais pas comment je peux écrire ce modèle.RegEx pour enlever DOT

J'ai une ligne de texte ceci.

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

Mais dans mon texte certains sont des nombres comme 2.5, 56.7. Je ne veux pas enlever ces points s'ils sont des nombres décimaux.

Juste si dans les lignes alors je dois enlever le point. -5.2- sera -52-

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

Il peut y INSIDE a DOT ou non.

Vous avez des questions concernant ce modèle?

Répondre

1

Si vous avez seulement besoin de faire correspondre les points entourés par dash chiffres et chiffres au tableau de bord, essayez lookarounds positif:

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

Démo: https://regex101.com/r/nY7fA9/1


Si vous devez faire correspondre les points entourés dash-digits et digits-dash (n'importe quel nombre positif de chiffres), la chose est plus délicate puisque lookbehinds ne supporte pas les quantificateurs dans de nombreuses expressions regex. Dans ce cas, vous pouvez correspondre au préfixe avec une expression régulière normale et immédiatement réinitialiser le match avec \K:

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

Démo: https://regex101.com/r/nY7fA9/2

+0

Merci de répondre. Mais si les nombres vont changer ne les attrapant pas. Par exemple, E-1-2-53.1-0-0 ou E-1-2-0-35862.5-0 ou E-1-2-0-23.5-0 Comment pouvons-nous attraper tout cela - .. ...- des chiffres avec un point –

+0

@HusRKozk, mis à jour la réponse –

+0

Merci beaucoup ... Ce compagnon travaille .... Sposibo bolshoi :) Eto otlichno ... –