Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo de código a seguir usa o Regex.Replace método para substituir datas que têm o formulário mm/dd/yyy por datas que têm o formulário dd-mm-yy.
Warning
O uso irrestrito de System.Text.RegularExpressions com entrada não confiável pode expor aplicativos a ataques de negação de serviço. Consulte as práticas recomendadas para expressões regulares no .NET para obter diretrizes sobre como usar com segurança .NET expressões regulares com entrada não confiável.
Example
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
O código a seguir mostra como o MDYToDMY método pode ser chamado em um aplicativo.
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.
Comments
O padrão da expressão regular \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b é interpretado conforme mostrado na tabela a seguir.
| Pattern | Description |
|---|---|
\b |
Começar a correspondência em um limite de palavra. |
(?<month>\d{1,2}) |
Corresponder a um ou dois dígitos decimais. Este é o grupo capturado do month. |
/ |
Corresponde à barra. |
(?<day>\d{1,2}) |
Corresponder a um ou dois dígitos decimais. Este é o grupo capturado do day. |
/ |
Corresponde à barra. |
(?<year>\d{2,4}) |
Corresponder de dois a quatro dígitos decimais. Este é o grupo capturado do year. |
\b |
Termina a correspondência em um limite de palavra. |
O padrão ${day}-${month}-${year} define a cadeia de caracteres de substituição, conforme mostrado na tabela a seguir.
| Pattern | Description |
|---|---|
$(day) |
Adicione a cadeia de caracteres capturada pelo day grupo de captura. |
- |
Adicione um hífen. |
$(month) |
Adicione a cadeia de caracteres capturada pelo month grupo de captura. |
- |
Adicione um hífen. |
$(year) |
Adicione a cadeia de caracteres capturada pelo year grupo de captura. |