|
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
|
Übersetzung
Original
|
Reguläre Ausdrücke von .NET Framework
-
Das Muster des regulären Ausdrucks, das im Text identifiziert werden soll. In .NET Framework werden Muster für reguläre Ausdrücke von einer speziellen Syntax oder Sprache definiert, die mit regulären Ausdrücken in Perl 5 kompatibel ist und einige zusätzliche Funktionen wie Mustervergleiche von rechts nach links bietet. Weitere Informationen finden Sie unter Sprachelemente für reguläre Ausdrücke – Kurzübersicht. -
Der Text, der nach dem Muster des regulären Ausdrucks analysiert werden soll.
-
Bestimmen, ob das Muster des regulären Ausdrucks im Eingabetext auftritt, indem die IsMatch-Methode aufgerufen wird. Ein Beispiel, in dem Text mithilfe der IsMatch-Methode überprüft wird, finden Sie unter Gewusst wie: Überprüfen, ob Zeichenfolgen ein gültiges E-Mail-Format aufweisen. -
Abrufen eines oder aller Vorkommen des Texts, die dem Muster des regulären Ausdrucks entsprechen, indem die Match-Methode oder die Matches-Methode aufgerufen wird. Die erste Methode gibt ein Match-Objekt zurück, das Informationen über den übereinstimmenden Text bereitstellt. Die zweite Methode gibt ein MatchCollection-Objekt zurück, das ein Match-Objekt für jede im analysierten Text gefundene Übereinstimmung enthält. -
Ersetzen von Text, der dem Muster des regulären Ausdrucks entspricht, indem die Replace-Methode aufgerufen wird. Beispiele, in denen die Replace-Methode verwendet wird, um Datumsformate zu ändern und ungültige Zeichen aus einer Zeichenfolge zu entfernen, finden Sie unter Gewusst wie: Entfernen von ungültigen Zeichen aus einer Zeichenfolge und Beispiel: Ändern von Datumsformaten.
Beispiel 1: Ersetzen von Teilzeichenfolgen
using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = "(Mr\\.? |Mrs\\.? |Miss |Ms\\.? )"; string[] names = { "Mr. Henry Hunt", "Ms. Sara Samuels", "Abraham Adams", "Ms. Nicole Norris" }; foreach (string name in names) Console.WriteLine(Regex.Replace(name, pattern, String.Empty)); } } // The example displays the following output: // Henry Hunt // Sara Samuels // Abraham Adams // Nicole Norris
Beispiel 2: Identifizieren von doppelten Wörtern
using System; using System.Text.RegularExpressions; public class Class1 { public static void Main() { string pattern = @"\b(\w+?)\s\1\b"; string input = "This this is a nice day. What about this? This tastes good. I saw a a dog."; foreach (Match match in Regex.Matches(input, pattern, RegexOptions.IgnoreCase)) Console.WriteLine("{0} (duplicates '{1}') at position {2}", match.Value, match.Groups[1].Value, match.Index); } } // The example displays the following output: // This this (duplicates 'This)' at position 0 // a a (duplicates 'a)' at position 66
|
\b |
|
|
|
|
|
\s |
|
|
\1 |
|
|
\b |
|
Beispiel 3: Dynamisches Erstellen eines kulturabhängigen regulären Ausdrucks
using System; using System.Collections.Generic; using System.Globalization; using System.Text.RegularExpressions; public class Example { public static void Main() { // Define text to be parsed. string input = "Office expenses on 2/13/2008:\n" + "Paper (500 sheets) $3.95\n" + "Pencils (box of 10) $1.00\n" + "Pens (box of 10) $4.49\n" + "Erasers $2.19\n" + "Ink jet printer $69.95\n\n" + "Total Expenses $ 81.58\n"; // Get current culture's NumberFormatInfo object. NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat; // Assign needed property values to variables. string currencySymbol = nfi.CurrencySymbol; bool symbolPrecedesIfPositive = nfi.CurrencyPositivePattern % 2 == 0; string groupSeparator = nfi.CurrencyGroupSeparator; string decimalSeparator = nfi.CurrencyDecimalSeparator; // Form regular expression pattern. string pattern = Regex.Escape( symbolPrecedesIfPositive ? currencySymbol : "") + @"\s*[-+]?" + "([0-9]{0,3}(" + groupSeparator + "[0-9]{3})*(" + Regex.Escape(decimalSeparator) + "[0-9]+)?)" + (! symbolPrecedesIfPositive ? currencySymbol : ""); Console.WriteLine( "The regular expression pattern is:"); Console.WriteLine(" " + pattern); // Get text that matches regular expression pattern. MatchCollection matches = Regex.Matches(input, pattern, RegexOptions.IgnorePatternWhitespace); Console.WriteLine("Found {0} matches.", matches.Count); // Get numeric string, convert it to a value, and add it to List object. List<decimal> expenses = new List<Decimal>(); foreach (Match match in matches) expenses.Add(Decimal.Parse(match.Groups[1].Value)); // Determine whether total is present and if present, whether it is correct. decimal total = 0; foreach (decimal value in expenses) total += value; if (total / 2 == expenses[expenses.Count - 1]) Console.WriteLine("The expenses total {0:C2}.", expenses[expenses.Count - 1]); else Console.WriteLine("The expenses total {0:C2}.", total); } } // The example displays the following output: // The regular expression pattern is: // \$\s*[-+]?([0-9]{0,3}(,[0-9]{3})*\.?[0-9]+) // Found 6 matches. // The expenses total $81.58.
|
\$ |
|
|
\s* |
|
|
[-+]? |
|
|
([0-9]{0,3}(,[0-9]{3})*(\.[0-9]+)?) |
|
|
[0-9]{0,3} |
|
|
(,[0-9]{3})* |
|
|
\. |
|
|
[0-9]+ |
|
|
(\.[0-9]+)? |
|
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|