Announcement

Collapse
No announcement yet.

Mit Suchmuster in einem Text suchen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mit Suchmuster in einem Text suchen

    Hallo zusammen,

    in einem Text (context) möchte ich nach bestimmten Textmustern suchen.
    Buchstabe1 + Buchstabe2 + Null bis Zwei Leerzeichen + Drei bis Neun Ziffern

    Bisher mache ich das so...
    Code:
    Match match = Regex.Match(content.ToUpper(), @"[SLKHGADTIUVFBC][VRFASLTBNGI][ ]{0,2}[0-9]{3,9}");
    und anschließend validiere ich meine Matches anhand eines Arrays (sparten) mit gültigen Buchstabenkombinationen

    Code:
    List<string> results  = new List<string>();
    while (match != null && match.Success)
                {
                    results.AddRange(from sparte in sparten where match.Value.StartsWith(sparte) select match.Value.Replace(" " , ""));
                    match = match.NextMatch();
                }
    Da sich die Bereiche Buchstabe1 und Buchstabe2 zukünftig auch ändern könnten,
    möchte ich das Suchmuster mit dem aus dem Array gültigen Buchstabenkombinationen (Dieses Array ergibt sich aus einem Xml das ich beim Programmstart auslese) wie folgt umstellen:

    Irgendwie so...
    Zweistellige Buchstabenkombination1 bis Zweistellige Buchstabenkombination14 + Null bis Zwei Leerzeichen + Drei bis Neun mal eine Ziffer

    Außerdem würde ich mir dann das Validieren sparen, da das Suchmuster nur gültige Buchstabenkombinationen enthält.

    Die einzige Lösung die mir einfällt ist alle Buchstaben in das Suchmuster auf zu nehmen und weiterhin im Anschluss zu validieren.

    Code:
    Match match = Regex.Match(content.ToUpper(), @"[A-Z][A-Z][ ]{0,2}[0-9]{3,9}");
    
    List<string> results  = new List<string>();
    while (match != null && match.Success)
           {
               results.AddRange(from sparte in sparten where match.Value.StartsWith(sparte) select match.Value.Replace(" " , ""));
               match = match.NextMatch();
            }
    Kann mir jemand helfen
    Wie würdet ihr das lösen?

    Viele Grüße
    Sven aus HH

  • #2
    Ich weiß jetzt nicht was
    Zweistellige Buchstabenkombination1 bis Zweistellige Buchstabenkombination14 + Null bis Zwei Leerzeichen + Drei bis Neun mal eine Ziffer
    ist oder bedeuten könnte, aber man kann natürlich eauch eine RegEx nacheinnander mit verschiedenen Suchmustern aufrufen.
    Christian

    Comment

    Working...
    X