Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C# Reguläre Ausdrücke (Regex): Praktischer Leitfaden

Was sind Reguläre Ausdrücke?

Regulärer Ausdruck (Regex) ist ein Muster zur Textsuche und -manipulation. Der .NET-Namespace System.Text.RegularExpressions stellt die Engine bereit.

Wichtige Konstrukte (Übersicht)

  • Zeichenklassen: [abc], [a-z], \d (Ziffer), \w (Wortzeichen), \s (Whitespace)
  • Anker: ^ (Zeilenanfang), $ (Zeilenende), \b (Wortgrenze)
  • Quantoren: * (0+), + (1+), ? (0/1), {n}, {n,}, {n,m}
  • Gruppierung: (...) (Capture), (?:...) (Non-Capture), (?<name>...) (Named Group)
  • Alternation: a|b (a oder b)
  • Backreferences: \1, \k<name>
  • Ersetzungen: $1, ${name}

Die Regex-Klasse

Wichtigste statischen/Instanz-Methoden:

MethodeBeschreibung
IsMatch(input)Prüft, ob Muster im Input vorkommt.
Match(input)Liefert erstes Match-Objekt.
Matches(input)Liefert MatchCollection (alle Treffer).
Replace(input, replacement)Ersetzt alle Treffer.
Split(input)Zerlegt String an Treffern.

Beispiel 1: Wörter beginnend mit 'S'

using System;
using System.Text.RegularExpressions;

string text = "A Thousand Splendid Suns";
string pattern = @"\bS\w*"; // Wortgrenze, 'S', dann Wortzeichen

foreach (Match m in Regex.Matches(text, pattern))
    Console.WriteLine(m.Value); // Splendid, Suns

Beispiel 2: Wörter mit 'm' beginnend und 'e' endend

string text = "make maze and manage to measure it";
string pattern = @"\bm\w*e\b";

foreach (Match m in Regex.Matches(text, pattern))
    Console.WriteLine(m.Value); // make, maze, manage, measure

Beispiel 3: Mehrfache Whitespaces normalisieren

string input = "Hello   World";
string pattern = @"\s+";
string replacement = " ";

Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Console.WriteLine($"Original: '{input}'");
Console.WriteLine($"Result:   '{result}'"); // "Hello World"

Performance-Tipps

  • RegexOptions.Compiled für häufig verwendete Patterns (einmaliger JIT-Overhead, dann schneller).
  • RegexOptions.CultureInvariant für konsistentes Verhalten.
  • Statische Regex-Methoden cachen intern; für hohe Durchsatz-Raten Instanz wiederverwenden.
  • Vermeiden Sie katastrophales Backtracking (z. B. (a+)+) – nutzen Sie atomare Gruppen (?>...) oder Possessive Quantoren (nicht direkt in .NET, aber via (?>...)).

Verbatim-Strings für Patterns

Immer @"" verwenden, um doppeltes Escapen zu vermeiden:

// Statt "\\d+" → @"\d+"
string pattern = @"\b\d{3}-\d{2}-\d{4}\b"; // US-SSN Pattern

C Sprache

  1. C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
  2. C# Strings meistern: Grundlagen, Operationen & fortgeschrittene Techniken
  3. Java Ausdrücke, Anweisungen und Blöcke verstehen
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. String-Repräsentationen in Java Enums meistern
  6. Java Lambda Expressions meistern: Von Grundlagen bis Stream API
  7. C++ String‑Funktionen meistern: strcpy, strcat, strlen, strcmp – Praxisbeispiele
  8. C Strings einfach gemacht: Deklaration, Ein- & Ausgabe, Bibliotheksfunktionen
  9. Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
  10. Java Strings Klasse: String-Erstellung & Manipulation meistern