Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh kode berikut menggunakan metode Regex.Replace untuk mengganti tanggal yang memiliki formulir mm/dd/ yy dengan tanggal yang memiliki formulir dd-mm-yy.
Peringatan
Saat menggunakan System.Text.RegularExpressions untuk memproses masukan yang tidak tepercaya, berikan batas waktu. Pengguna berbahaya dapat memberikan input ke RegularExpressions, menyebabkan serangan Penolakan Layanan . API kerangka kerja ASP.NET Core yang menggunakan RegularExpressions meneruskan batas waktu.
Contoh
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
Kode berikut menunjukkan bagaimana metode MDYToDMY dapat dipanggil dalam aplikasi.
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.
Komentar
Pola ekspresi reguler \b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b ditafsirkan seperti yang diperlihatkan dalam tabel berikut.
| Pola | Deskripsi |
|---|---|
\b |
Mulai pencocokan pada batas kata. |
(?<month>\d{1,2}) |
Cocokkan satu atau dua digit desimal. Ini adalah grup yang ditangkap month. |
/ |
Cocokkan tanda garis miring. |
(?<day>\d{1,2}) |
Cocokkan satu atau dua digit desimal. Ini adalah grup yang tertangkap day. |
/ |
Cocokkan tanda garis miring. |
(?<year>\d{2,4}) |
Sesuaikan dua hingga empat digit desimal. Ini adalah grup year yang ditangkap. |
\b |
Akhiri pertandingan pada batas kata. |
Pola ${day}-${month}-${year} menentukan string pengganti seperti yang ditunjukkan dalam tabel berikut.
| Pola | Deskripsi |
|---|---|
$(day) |
Tambahkan string yang ditangkap oleh grup penangkap day. |
- |
Tambahkan tanda hubung. |
$(month) |
Tambahkan string yang diambil oleh grup penangkap month. |
- |
Tambahkan tanda hubung. |
$(year) |
Tambahkan string yang diambil oleh grup pengambilan year. |