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?
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?
Regex.Split kann Zahlen aus Zeichenketten extrahieren. Sie erhalten alle Zahlen, die in einer Zeichenkette gefunden werden.
string input = "There are 4 numbers in this string: 40, 30, and 10.";
// Split on one or more non-digit characters.
string[] numbers = Regex.Split(input, @"\D+");
foreach (string value in numbers)
{
if (!string.IsNullOrEmpty(value))
{
int i = int.Parse(value);
Console.WriteLine("Number: {0}", i);
}
}
Ausgabe:
Nummer: 4 Zahl: 40 Zahl: 30 Zahl: 10
Wenn die Zahl eine Dezimalstelle hat, können Sie Folgendes verwenden
using System;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
//Your code goes here
Console.WriteLine(Regex.Match("anything 876.8 anything", @"\d+\.*\d*").Value);
Console.WriteLine(Regex.Match("anything 876 anything", @"\d+\.*\d*").Value);
Console.WriteLine(Regex.Match("$876435", @"\d+\.*\d*").Value);
Console.WriteLine(Regex.Match("$876.435", @"\d+\.*\d*").Value);
}
}
}
Ergebnisse:
"irgendetwas 876.8 irgendetwas" ==> 876.8
"irgendetwas 876 irgendetwas" ==> 876
"$876435" ==> 876435
"$876.435" ==> 876.435
Beispiel: https://dotnetfiddle.net/IrtqVt
Eine weitere einfache Lösung mit Regex Sie sollten dies verwenden
using System.Text.RegularExpressions;
und der Code lautet
string var = "Hello3453232wor705Ld";
string mystr = Regex.Replace(var, @"\d", "");
string mynumber = Regex.Replace(var, @"\D", "");
Console.WriteLine(mystr);
Console.WriteLine(mynumber);
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.