470 Stimmen

Suchen und Extrahieren einer Zahl aus einer Zeichenkette

Ich habe die Anforderung, eine in einer Zeichenkette enthaltene Zahl zu finden und zu extrahieren.

Zum Beispiel aus diesen Zeichenfolgen:

string test = "1 test"
string test1 = " 1 test"
string test2 = "test 99"

Wie kann ich das tun?

752voto

Tim Pietzcker Punkte 311448

\d+ ist die Regex für eine ganze Zahl. Also

//System.Text.RegularExpressions.Regex
resultString = Regex.Match(subjectString, @"\d+").Value;

gibt eine Zeichenkette zurück, die das erste Vorkommen einer Zahl in subjectString .

Int32.Parse(resultString) wird Ihnen dann die Nummer mitgeteilt.

289voto

Dave Punkte 2963

So bereinige ich Telefonnummern, um nur die Ziffern zu erhalten:

string numericPhone = new String(phone.Where(Char.IsDigit).ToArray());

106voto

Sasha Reminnyi Punkte 3372

Die Zeichenkette durchgehen und mit Char.IsDigit

string a = "str123";
string b = string.Empty;
int val;

for (int i=0; i< a.Length; i++)
{
    if (Char.IsDigit(a[i]))
        b += a[i];
}

if (b.Length>0)
    val = int.Parse(b);

47voto

Pranay Rana Punkte 170480

Regulären Ausdruck verwenden ...

Regex re = new Regex(@"\d+");
Match m = re.Match("test 66");

if (m.Success)
{
    Console.WriteLine(string.Format("RegEx found " + m.Value + " at position " + m.Index.ToString()));
}
else
{
    Console.WriteLine("You didn't enter a string containing a number!");
}

42voto

ejcortes Punkte 559

Was ich verwende, um Telefonnummern ohne Satzzeichen zu erhalten...

var phone = "(787) 763-6511";

string.Join("", phone.ToCharArray().Where(Char.IsDigit));

// result: 7877636511

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X