2009-04-29 6 views
1

J'ai texte comme ce formatSupprimer les espaces du numéro dans le texte en VB.NET

"terme: 156 ^^^: ^^ 59 DataInput" ou "terme: 156 ^^^: 59 DataInput" ou "terme: 156: ^^^ 59"

Le "^" représentait un espace blanc. Notez l'espace blanc entre les deux nombres et les deux points. Il ya 2, 3, 4 ou même 7 espaces blancs entre les deux nombres. Je veux supprimer ces espaces afin que le texte peut être dans ce format:

« terme: 156: 59 DataInput »

qui est plus d'espace entre les deux nombre -> 156: 56. Je veux supprimer l'espace blanc entre le nombre et le côlon seulement.

Merci pour toute contribution.

Répondre

5

Effectuez les opérations suivantes

Dim result = Regex.Replace(input, "(\d)\s*:\s*(\d)", "$1:$2") 

Il utilise une expression régulière pour faire correspondre les espaces entre les numéros et les colons. Tout modèle tel que celui-ci sera remplacé par le dernier argument. Les $ 1 et $ 2 sont des séquences d'échappement qui disent "remplacer par du texte correspondant aux première et deuxième parenthèses". Dans ce cas, ce sera un seul chiffre.

+0

Vous avez raison. L'expression régulière est puissante. – Rithet

+0

Les expressions régulières rock. +1 –

+2

@Jose, ils rock jusqu'à ce que vous devez maintenir une ligne regex 4 lignes avant que vous avez écrit;) – JaredPar

1

Je pense que regex aidera à gérer le nombre différent de caractères d'espaces.

Dim text As String = "term: 156  :  59 datainput " 
    text = Regex.Replace(text, "([0-9])\s*:\s*([0-9])", "$1:$2", RegexOptions.Singleline) 
+0

15 secondes en retard: D – Rithet

+0

Expression différente. Même résultat +1 –

Questions connexes