seth_not@home: regexp-geschwindigkeit

Beitrag lesen

gudn tach!

[1]$|[2][0-9]$|^1[0-9][0-9]$|^2[0-4][0-9]$|^25[0-5]$

Bei Alternativen nach Möglichkeit immer die spezifischsten Anfänge nach vorne, damit möglichst schnell entschieden ist, welcher Zweig zutreffen kann,

wenn nichts ueber den string bekannt ist, dann ack.
aber wenn man gewissen vorwissen hat, sollten u.u.(!) wahrscheinlichere zweige nach vorne.

Die ersten zwei Deiner Möglichkeiten lassen sich noch mit einem ? nach der [1-9] zusammenfassen.

das wiederum fuehrt zu backtracking (im regexp), was man, wenn man viel wert auf speed legt, vermeiden sollte.

Je nach Regex-Engine könnte \d anstelle von [0-9] noch was ausmachen.

oh, das wusste ich noch nicht. kannst du dazu mehr sagen (z.b. welche engines das betrifft)?

zum rest kann ich nur noch "ack" sagen.

prost
seth


  1. 0-9 ↩︎

  2. 1-9 ↩︎