Språk
Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I följande kodexempel används Regex.Replace metoden för att ersätta datum som har formuläret mm/dd/yy med datum som har formatet dd-mm-yy.
Varning
Obegränsad användning av System.Text.RegularExpressions med ej betrodda indata kan utsätta program för överbelastningsattacker. Mer information om hur du använder .NET reguljära uttryck med obetrodda indata finns i Metodtips för reguljära uttryck i .NET.
Exempel
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
Följande kod visar hur MDYToDMY metoden kan anropas i ett program.
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.
Kommentarer
Mönstret för det reguljära uttrycket \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b tolkas som visas i följande tabell.
| Mönster | Beskrivning |
|---|---|
\b |
Starta matchningen vid en ordgräns. |
(?<month>\d{1,2}) |
Matcha en eller två decimalsiffror. Det här är den month fångade gruppen. |
/ |
Matcha snedstrecket. |
(?<day>\d{1,2}) |
Matcha en eller två decimalsiffror. Det här är den day fångade gruppen. |
/ |
Matcha snedstrecket. |
(?<year>\d{2,4}) |
Matcha mellan två och fyra decimaler. Det här är den year fångade gruppen. |
\b |
Avsluta matchningen vid en ordgräns. |
Mönstret ${day}-${month}-${year} definierar ersättningssträngen enligt följande tabell.
| Mönster | Beskrivning |
|---|---|
$(day) |
Lägg till strängen som fångas av insamlingsgruppen day . |
- |
Lägg till ett bindestreck. |
$(month) |
Lägg till strängen som fångas av insamlingsgruppen month . |
- |
Lägg till ett bindestreck. |
$(year) |
Lägg till strängen som fångas av insamlingsgruppen year . |