Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Regex.Replace-Methode (String, String)

 

Ersetzt in einer angegebenen Eingabezeichenfolge alle mit dem Muster für den regulären Ausdruck übereinstimmenden Zeichenfolgen durch eine angegebene Ersetzungszeichenfolge.

Namespace:   System.Text.RegularExpressions
Assembly:  System (in System.dll)

public string Replace(
	string input,
	string replacement
)

Parameter

input

Die nach einer Übereinstimmung zu durchsuchende Zeichenfolge.

replacement

Die Ersatzzeichenfolge.

Rückgabewert

Type: System.String

Eine neue, mit der Eingabezeichenfolge identische Zeichenfolge. Die Ersetzungszeichenfolge ersetzt jedoch alle übereinstimmenden Zeichenfolgen.Wenn keine Entsprechung für das reguläre Ausdrucksmuster in der aktuellen Instanz gefunden wird, gibt die Methode die aktuelle Instanz unverändert zurück.

Exception Condition
ArgumentNullException

input oder replacement ist null.

RegexMatchTimeoutException

Ein Timeout ist aufgetreten.Weitere Informationen zu Timeouts finden Sie im Abschnitt "Hinweise".

Die Suche nach Übereinstimmungen beginnt am Anfang der input Zeichenfolge.Der reguläre Ausdruck ist das vom Konstruktor für das aktuelle definierte Muster Regex Objekt.

Die replacement Parameter gibt die Zeichenfolge, die jede Übereinstimmung zu ersetzen input. replacementkann aus einer beliebigen Kombination von Literaltext bestehen und .Zum Beispiel das Ersetzungsmuster a*${test}b fügt die Zeichenfolge "eine *" gefolgt von der Teilzeichenfolge, die zugeordnet wird die test Erfassungsgruppe, ggf. gefolgt von der Zeichenfolge "b".Die * Zeichen nicht als Metazeichen in einem Ersetzungsmuster erkannt wird.

System_CAPS_noteHinweis

Ersetzungen sind die nur reguläre Ausdrücke Sprachelemente, die in einem Ersetzungsmuster erkannt werden.Alle anderen Sprachelemente für reguläre Ausdrücke, einschließlich , sind im Muster für reguläre Ausdrücke nur zulässig und werden nicht in Ersetzungsmustern erkannt.

Die RegexMatchTimeoutException Ausnahme wird ausgelöst, wenn die Ausführungszeit der Ersetzung durch angegebene Intervall für das Zeitlimit überschreitet die Regex.Regex(String, RegexOptions, TimeSpan) Konstruktor.Wenn Sie ein Timeoutintervall beim Aufruf des Konstruktors nicht festlegen, wird die Ausnahme ausgelöst, wenn der Vorgang alle für die Anwendungsdomäne eingerichtet, in dem Timeoutwert überschreitet die Regex Objekt erstellt wird.Wenn kein Timeout, in definiert ist der Regex Konstruktoraufruf oder Eigenschaften für die Anwendungsdomäne, oder wenn der Timeoutwert ist Regex.InfiniteMatchTimeout, wird keine Ausnahme ausgelöst

Da der Methodenrückgabe input unverändert, wenn keine Übereinstimmung vorhanden ist, können Sie die Object.ReferenceEquals -Methode, um zu bestimmen, ob die Methode mit der Eingabezeichenfolge Ersetzungen vorgenommen hat.

Das folgende Beispiel definiert einen regulären Ausdruck \s+, eine oder mehrere Leerzeichen entspricht.Die Ersetzungszeichenfolge "", durch ein einzelnes Leerzeichen ersetzt.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "This is   text with   far  too   much   " + 
                     "whitespace.";
      string pattern = "\\s+";
      string replacement = " ";
      Regex rgx = new Regex(pattern);
      string result = rgx.Replace(input, replacement);

      Console.WriteLine("Original String: {0}", input);
      Console.WriteLine("Replacement String: {0}", result);                             
   }
}
// The example displays the following output:
//       Original String: This is   text with   far  too   much   whitespace.
//       Replacement String: This is text with far too much whitespace.

Das folgende Beispiel definiert einen regulären Ausdruck (\p{Sc}\s?)?(\d+\.?((?<=\.)\d+)?)(?(1)|\s?\p{Sc})?, und einem Ersetzungsmuster $2, ein führendes oder ein nachfolgendes Währungssymbol aus einem numerischen Wert entfernt.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern =  @"(\p{Sc}\s?)?(\d+\.?((?<=\.)\d+)?)(?(1)|\s?\p{Sc})?";
      string input = "$17.43  €2 16.33  £0.98  0.43   £43   12€  17";
      string replacement = "$2";
      Regex rgx = new Regex(pattern);
      string result = rgx.Replace(input, replacement);

      Console.WriteLine("Original String:    '{0}'", input);
      Console.WriteLine("Replacement String: '{0}'", result);                             
   }
}
// The example displays the following output:
//       Original String:    '$17.43  €2 16.33  £0.98  0.43   £43   12€  17'
//       Replacement String: '17.43  2 16.33  0.98  0.43   43   12  17'

Der reguläre Ausdruck wird entsprechend der Darstellung in der folgenden Tabelle interpretiert.

Muster

Beschreibung

\p{Sc}

Entspricht einem Währungssymbol. {Sc}Gibt alle Zeichen, die ein Mitglied der Unicode-Kategorie Symbol, Währung.

\s?

Übereinstimmung mit keinem oder einem Leerzeichen.

(\p{Sc}\s?)?

Übereinstimmung mit keinem oder einem Vorkommen der Kombination ein Währungssymbol gefolgt von NULL oder einem Leerzeichen.Dies ist die erste Erfassungsgruppe.

\d+

Entsprechung für mindestens eine Dezimalstelle finden.

\.?

Übereinstimmung mit keinem oder einem Vorkommen eines Punkts (verwendet als Dezimaltrennzeichenzeichen).

((?<=\.)\d+)?

Wenn ein Zeitraum das vorherige Zeichen ist, richten Sie eine oder mehrere Dezimalstellen.Dieses Muster kann 0 (null) oder einem Vorkommen abgeglichen werden.

(\d+\.?((?<=\.)\d+)?)

Übereinstimmung mit dem Muster eine oder mehrere Dezimalstellen, gefolgt von einem optionalen Punkt und zusätzlichen Dezimalstellen.Dies ist die zweite Erfassungsgruppe.Der Aufruf an die Replace(String, String) -Methode ersetzt die gesamte Übereinstimmung mit dem Wert von dieser Erfassungsgruppe.

(?(1)|\s?\p{Sc})?

Wenn die erste Erfassungsgruppe vorhanden ist, entspricht einer leeren Zeichenfolge.Übereinstimmen Sie, andernfalls 0 (null) oder einem Leerstellenzeichen gefolgt von einem Währungssymbol ein.

Universal Windows Platform
Verfügbar seit 4.5
.NET Framework
Verfügbar seit 1.1
Portable Class Library
Unterstützt in: portable .NET platforms
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: