Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im folgenden Codebeispiel wird die Regex.Replace-Methode verwendet, um Datumsangaben im Format mm/tt/jj durch Datumsangaben im Format tt-mm-jj zu ersetzen.
Warnung
Übergeben Sie ein Timeout, wenn Sie System.Text.RegularExpressions zum Verarbeiten nicht vertrauenswürdiger Eingaben verwenden. Böswillige Benutzer können Eingaben für RegularExpressions
bereitstellen, um einen Denial-of-Service-Angriff durchzuführen. ASP.NET Core-Framework-APIs, die RegularExpressions
verwenden, übergeben ein Timeout.
Beispiel
static string MDYToDMY(string input)
{
try {
return Regex.Replace(input,
@"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b",
"${day}-${month}-${year}", RegexOptions.None,
TimeSpan.FromMilliseconds(150));
}
catch (RegexMatchTimeoutException) {
return input;
}
}
Function MDYToDMY(input As String) As String
Try
Return Regex.Replace(input, _
"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b", _
"${day}-${month}-${year}", RegexOptions.None,
TimeSpan.FromMilliseconds(150))
Catch e As RegexMatchTimeoutException
Return input
End Try
End Function
Der folgende Code zeigt, wie die MDYToDMY
-Methode in einer Anwendung aufgerufen werden kann.
using System;
using System.Globalization;
using System.Text.RegularExpressions;
public class Class1
{
public static void Main()
{
string dateString = DateTime.Today.ToString("d",
DateTimeFormatInfo.InvariantInfo);
string resultString = MDYToDMY(dateString);
Console.WriteLine($"Converted {dateString} to {resultString}.");
}
static string MDYToDMY(string input)
{
try {
return Regex.Replace(input,
@"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b",
"${day}-${month}-${year}", RegexOptions.None,
TimeSpan.FromMilliseconds(150));
}
catch (RegexMatchTimeoutException) {
return input;
}
}
}
// The example displays the following output to the console if run on 8/21/2007:
// Converted 08/21/2007 to 21-08-2007.
Imports System.Globalization
Imports System.Text.RegularExpressions
Module DateFormatReplacement
Public Sub Main()
Dim dateString As String = Date.Today.ToString("d", _
DateTimeFormatInfo.InvariantInfo)
Dim resultString As String = MDYToDMY(dateString)
Console.WriteLine("Converted {0} to {1}.", dateString, resultString)
End Sub
Function MDYToDMY(input As String) As String
Try
Return Regex.Replace(input, _
"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b", _
"${day}-${month}-${year}", RegexOptions.None,
TimeSpan.FromMilliseconds(150))
Catch e As RegexMatchTimeoutException
Return input
End Try
End Function
End Module
' The example displays the following output to the console if run on 8/21/2007:
' Converted 08/21/2007 to 21-08-2007.
Kommentare
Das Muster für reguläre Ausdrücke \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b
wird entsprechend der folgenden Tabelle interpretiert:
Muster | Beschreibung |
---|---|
\b |
Der Vergleich beginnt an einer Wortgrenze. |
(?<month>\d{1,2}) |
Entsprechung für eine oder zwei Dezimalstellen finden. Dies ist die erfasste Gruppe month . |
/ |
Entsprechung für den Schrägstrich finden. |
(?<day>\d{1,2}) |
Entsprechung für eine oder zwei Dezimalstellen finden. Dies ist die erfasste Gruppe day . |
/ |
Entsprechung für den Schrägstrich finden. |
(?<year>\d{2,4}) |
Entsprechung für zwei bis vier Dezimalstellen finden. Dies ist die erfasste Gruppe year . |
\b |
Der Vergleich endet an einer Wortgrenze. |
Das Muster ${day}-${month}-${year}
definiert die Ersetzungszeichenfolge wie in der folgenden Tabelle gezeigt.
Muster | BESCHREIBUNG |
---|---|
$(day) |
Zeichenfolge hinzufügen, die von der Erfassungsgruppe day erfasst wurde. |
- |
Bindestrich hinzufügen. |
$(month) |
Zeichenfolge hinzufügen, die von der Erfassungsgruppe month erfasst wurde. |
- |
Bindestrich hinzufügen. |
$(year) |
Zeichenfolge hinzufügen, die von der Erfassungsgruppe year erfasst wurde. |