Laden...

Gibt es etwas schnelleres als Regex?

4 Antworten
967 Aufrufe
Letzter Beitrag: vor 10 Jahren
Gibt es etwas schnelleres als Regex?

Hi,

in einer Streamreader-Schleife soll wg. Massendaten die jew. Zeile geprüft werden, ob sie mit einen numerischen Value beginnt. Das 1. Zeichen reicht bereits.
Aktuell mache ich das mit der Anweisung.

if (Regex.IsMatch(line, @"^\d"))
{}

Gibt es etwas schnelleres als Regex, da die Performance extrem wichtig ist?

Das hier sieht auch nicht sonderlich elegant aus ...!?

List<string>checkValues = new List<string> { "0","1","2","3","4","5","6","7","8","9" };
string firstWord = line.Substring(0,1);
if (checkValues.IndexOf(firstWord) != -1)
{}

Merci

LG
Nicole

LG
Nicole

Hinweis von Coffeebean vor 10 Jahren

Bitte benutze die Code-Tags! [Hinweis] Wie poste ich richtig? Punkt 6

Hallo gpc44,

Ich glaube eher nicht, dass Regex hier das Performanceproblem ist. Allerdings geht es eleganter (und vielleicht auch etwas schneller) mit


if(!string.IsNullOrEmpty(line) && char.IsNumber(line[0]) { ... }

Wenn aber wirklich ein Performanceproblem vieliegt ist es sicher nicht das gewesen.

LG pdelvo

Hallo pdelvo,

hier wäre wohl IsDigit eher das gewünschte als IsNumber.

herbivore

Alles ist schneller als Regex.
Benchmarking IsNumeric Options