2017-01-04 1 views
-3

je cette méthode qui prend une chaîne et obtient seulement les nombres de et rogne les espaces blancs, mais il ne fonctionne pas:Fonction Garniture pas se débarrasser des espaces blancs dans la chaîne

public static string ToNumericOnlyFAX(this string input) 
    { 
    if (input == "OFF6239750") 
    { 
     input = Regex.Replace(input, "[^0-9']", " "); - becomes " 6239750" 
     input.TrimStart().Trim().TrimEnd(); - after any of these its still the above, I want it to be "6239750" 

     if (input.Length <= 10 && input == "6239750") - if the above works then I can padleft 
     { 
     input.PadLeft(10, '0'); 
      } 
     } 
     return input; 
     } 

comment je rogne la chaîne si les espaces blancs sont entre les nombres tels que le cul 603 123 4321 ???

+3

Les chaînes sont immuables - les appels 'Trim()' etc. retournent une nouvelle chaîne - donc vous utiliseriez quelque chose comme 'input = input.Trim();', et 'input = input.PadLeft (10, '0' – stuartd

+0

Et vous pouvez simplement changer votre Regex à ... 'Regex.Replace (entrée," [^ 0-9 '] "," ");' ... je veux dire que vous n'avez pas besoin de remplacer avec un espace. –

+0

@stuartd comment est-ce que je coupe les espaces entre une chaîne ?? – CodeMan

Répondre

1

De plus, pourquoi avez-vous besoin de remplacer par des espaces? Par exemple, vous pouvez changer à:

input = Regex.Replace(input, "[^0-9']", ""); - becomes "6239750". 

S'il vous plaît noter: Cette expression régulière supprimera tous caractères, espaces compris.

+0

Merci Buddy cette solution supprime les espaces même entre la chaîne, qui trim, trimstart et l'extrémité de finition n'a pas pu accomplir. – CodeMan

+0

:) Heureux que cela a fonctionné. J'ai mis à jour le post original pour le rendre clair. – adriancnewman

0

Essayez d'utiliser:

string subjectString = "OFF6239750"; 
string resultString = null; 
try { 
    resultString = Regex.Match(subjectString, @"\d+").Value; 
} catch (ArgumentException ex) { 
    // Syntax error in the regular expression 
}