Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující příklad kódu používá metodu Regex.Replace k nahrazení kalendářních dat, které mají formulář mm/dd/yy s kalendářními daty, které mají formulář dd-mm-yy.
Upozorňující
Při zpracování System.Text.RegularExpressions nedůvěryhodného vstupu předejte vypršení časového limitu. Uživatel se zlými úmysly může poskytnout vstup RegularExpressions, což způsobí útok na dostupnost služby. ASP.NET rozhraní API architektury Core, která používají RegularExpressions vypršení časového limitu.
Příklad
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
Následující kód ukazuje, jak lze metodu MDYToDMY volat v aplikaci.
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.
Komentáře
Vzor \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b regulárního výrazu je interpretován, jak je znázorněno v následující tabulce.
| Vzor | Popis |
|---|---|
\b |
Začne porovnání na hranici slova. |
(?<month>\d{1,2}) |
Porovná jednu nebo dvě desítkové číslice. Toto je month zachycená skupina. |
/ |
Porovná značku lomítka. |
(?<day>\d{1,2}) |
Porovná jednu nebo dvě desítkové číslice. Toto je day zachycená skupina. |
/ |
Porovná značku lomítka. |
(?<year>\d{2,4}) |
Porovná se ze dvou až čtyř desetinných číslic. Toto je year zachycená skupina. |
\b |
Ukončí porovnání na hranici slova. |
${day}-${month}-${year} Vzor definuje náhradní řetězec, jak je znázorněno v následující tabulce.
| Vzor | Popis |
|---|---|
$(day) |
Přidejte řetězec zachycený day skupinou zachycení. |
- |
Přidání spojovníku |
$(month) |
Přidejte řetězec zachycený month skupinou zachycení. |
- |
Přidání spojovníku |
$(year) |
Přidejte řetězec zachycený year skupinou zachycení. |