Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nell'esempio di codice seguente viene utilizzato il metodo Regex.Replace per sostituire le date con formato mm/gg/yy con date con il formato -mm-yy.
Avvertimento
L'uso senza restrizioni di System.Text.RegularExpressions con input non attendibile può esporre le applicazioni a attacchi di negazione del servizio. Per indicazioni su come usare in modo sicuro .NET espressioni regolari con input non attendibile, vedere Procedure consigliate per le espressioni regolari in .NET.
Esempio
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
Il codice seguente illustra come chiamare il metodo MDYToDMY in un'applicazione.
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.
Commenti
Il pattern di espressione regolare \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b viene interpretato come illustrato nella tabella seguente.
| Modello | Descrizione |
|---|---|
\b |
Inizia la corrispondenza al limite di una parola. |
(?<month>\d{1,2}) |
Corrispondi una o due cifre decimali. Questo è il gruppo catturato month. |
/ |
Trova la corrispondenza con il segno di barra. |
(?<day>\d{1,2}) |
Corrispondi una o due cifre decimali. Questo è il gruppo catturato day. |
/ |
Trova la corrispondenza con il segno di barra. |
(?<year>\d{2,4}) |
Trova la corrispondenza da due a quattro cifre decimali. Questo è il gruppo catturato year. |
\b |
Termina la partita al confine di una parola. |
Il criterio ${day}-${month}-${year} definisce la stringa di sostituzione, come illustrato nella tabella seguente.
| Modello | Descrizione |
|---|---|
$(day) |
Aggiungere la stringa acquisita dal gruppo di acquisizione day. |
- |
Aggiungere un trattino. |
$(month) |
Aggiungere la stringa acquisita dal gruppo di acquisizione month. |
- |
Aggiungere un trattino. |
$(year) |
Aggiungere la stringa acquisita dal gruppo di acquisizione year. |