[Regex]Port Java -> C#

06/10/2009 - 19:03 von Uwe Matthaeus | Report spam
Hallöchen,

unter Java habe ich folgendes Pattern:

"([0-9]*(.[0-9]+)?)\s*(|milli(second)?|second(e)?|minute|hour|day)s?"

damit kann ich z.B.: folgenden String 'zerlegen': "100 milli"
Unter C# bekomme ich mit:

Regex re = new Regex( Pattern, RegexOptions.IgnoreCase );
Match match = re.Match("100 milli");

nur den Teil "100" die Einheit fehlt. Hat einer vielleich einen Tip, damit es
auch unter C# funktioniert.

Vielen Dank im Voraus.

Uwe
 

Lesen sie die antworten

#1 Frank Dzaebel
06/10/2009 - 20:03 | Warnen spam
Hallo Uwe,

unter Java habe ich folgendes Pattern:
"([0-9]*(.[0-9]+)?)\s*(|milli(second)?|second(e)?|minute|hour|day)s?"



Regulàre Ausdrücke unter Java sind nicht 100% kompatibel
zu denen in .NET. Bei Deinem String würde mich das | vor milli
etwas stören. Ggf. besser für C# :

string pattern = @"([0-9]*(.[0-9]+)?)\s*(" +
"milli(second)?|second(e)?|minute|hour|day)s?";
string inhalt = "100 milli";
Regex re = new Regex(pattern, RegexOptions.IgnoreCase);
Match match = re.Match(inhalt);
if (match.Success) MessageBox.Show(match.Groups[0].Value);
else MessageBox.Show("nichts gefunden");
____________

Relevante Doku zu den Gruppen-Definitionen:

[Gruppierungskonstrukte]
http://msdn.microsoft.com/de-de/lib...twtah.aspx

[Are Java and C# regular expressions compatible? - Stack Overflow]
http://stackoverflow.com/questions/...compatible

[Sprachelemente für regulàre Ausdrücke]
http://msdn.microsoft.com/de-de/lib...4scfc.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen