Laden...

Wortteile eines Strings filtern mit Regex

Erstellt von nasenkalli vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.691 Views
N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 13 Jahren
Wortteile eines Strings filtern mit Regex

Hallo zusammen,

ich möchte folgenden String filtern mit Regex,
bekomme in aber nicht richtig zusammengebaut.
ich hoffe ihr könnt mir helfen.
Das Tutorial hab ich schon gelesen.

Der String lautet:
170GERN117PLG00103001000000.pdf

Folgende Regular Expressions hab ich bisher:
^[0-9][a-zA-Z][0-9][a-zA-Z][0-9]{3}

Ergibt bisher (nur Fettgedruckter Teil):
170GERN117PLG00103001000000.pdf

Ziel sollte aber sein (nur Fettgedruckter Teil):
170GERN117PLG00103001000000.pdf

Danke euch schon mal für eure Hilfe.

Viele Grüße

1.552 Beiträge seit 2010
vor 13 Jahren

Hallo nasenkalli,
habs mal so auf die Schnelle zusammengestellt:

Regex r = new Regex("(^[0-9]*[a-zA-Z]*[0-9]*[a-zA-Z]*[0-9]{3})|(001000)");
var m = r.Matches("170GERN117PLG00103001000000.pdf");
string s = string.Empty;
foreach (var VARIABLE in m)
{
    s += Environment.NewLine + VARIABLE;
}

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 13 Jahren

Vielen tausend Dank, das ging ja mal schnell!
Du glaubst gar nicht wie sehr du mir geholfen hast.
Fühl dich gedrückt. 😉

N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 13 Jahren

Hab mich zu früh gefreut.
Die letzten 6 Stellen sind auch immer variabel,
also auch z.B. 170GERN117PLG00103003002000.pdf

1.552 Beiträge seit 2010
vor 13 Jahren

Dann kannst du es mit Gruppen lösen:

170GERN117PLG001 + 2 beliebige unwichtige Zahlen + 6 beliebige wichtige Zahlen


Regex r = new Regex("(?<gruppe1>^[0-9]*[a-zA-Z]*[0-9]*[a-zA-Z]*[0-9]{3})(?<ZweiUnwichtigeZahlen>[0-9]{2})(?<weitere6>[0-9]{6})");
var m = r.Match("170GERN117PLG00103001000000.pdf");
if(m.Groups["gruppe1"].Success && m.Groups["weitere6"].Success)
{
    [...]
}

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 13 Jahren

Super, perfectly!!!
Nutze noch 2.0 gibt es ein äquivalent zu var?

N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 13 Jahren

Schon gut, löse es mit den Bordmitteln von Regex.
Danke vielmals noch.

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo nasenkalli,

alternativ kannst du auf LINQ verwenden. Die String-Klasse bietet unter anderem einige sehr hilfreiche Erweiterungsmethoden(Extension Methods).

zero_x