Nasıl yapılır: Dizeden Geçersiz Karakterleri Çıkartma
Makale
Aşağıdaki örnek, bir dizeden geçersiz karakterleri almak için statik Regex.Replace yöntemi kullanır.
Uyarı
Güvenilmeyen girişi işlemek için kullanırken System.Text.RegularExpressions bir zaman aşımı geçirin. Kötü amaçlı bir kullanıcı için giriş RegularExpressionssağlayabilir ve bu da Hizmet Reddi saldırısına neden olabilir. ASP.NET Zaman aşımı kullanan RegularExpressions Core framework API'leri.
Örnek
Bu örnekte tanımlanan yöntemini kullanarak CleanInput , kullanıcı girişini kabul eden bir metin alanına girilmiş zararlı olabilecek karakterlerin soyulabilmesini sağlayabilirsiniz. Bu durumda, CleanInput nokta (.), simgeler (@) ve kısa çizgi (-) dışında tüm nonalphanumeric karakterleri çıkarır ve kalan dizeyi döndürür. Ancak, normal ifade desenini değiştirerek bir giriş dizesine dahil edilmemesi gereken karakterlerin çıkarılabilmesini sağlayabilirsiniz.
C#
using System;
using System.Text.RegularExpressions;
publicclassExample
{
staticstringCleanInput(string strIn)
{
// Replace invalid characters with empty strings.try {
return Regex.Replace(strIn, @"[^\w\.@-]", "",
RegexOptions.None, TimeSpan.FromSeconds(1.5));
}
// If we timeout when replacing invalid characters,// we should return Empty.
catch (RegexMatchTimeoutException) {
return String.Empty;
}
}
}
Imports System.Text.RegularExpressions
Module Example
Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Try
Return Regex.Replace(strIn, "[^\w\.@-]", "")
' If we timeout when replacing invalid characters,
' we should return String.Empty.
Catch e As RegexMatchTimeoutException
Return String.Empty
End Try
End Function
End Module
Normal ifade düzeni [^\w\.@-] , sözcük karakteri, nokta, @ simgesi veya kısa çizgi olmayan herhangi bir karakterle eşleşir. Sözcük karakteri herhangi bir harf, ondalık basamak veya alt çizgi gibi noktalama işaretleri bağlayıcısıdır. Bu desenle eşleşen herhangi bir karakter, değiştirme deseni tarafından tanımlanan dize olan ile değiştirilir String.Empty. Kullanıcı girişinde ek karakterlere izin vermek için bu karakterleri normal ifade desenindeki karakter sınıfına ekleyin. Örneğin, normal ifade deseni [^\w\.@-\\%] bir giriş dizesinde yüzde simgesine ve ters eğik çizgiye de izin verir.
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Belirli karakter desenlerini bulmak, metni doğrulamak, metin alt dizeleriyle çalışmak ve ayıklanan dizeleri .NET'teki bir koleksiyona eklemek için normal ifadeleri kullanın.
Bir dizenin başından veya sonundan boş alanları kırpmayı veya .NET'te dizede belirtilen konumdaki herhangi bir sayıda boşluğu veya karakteri kaldırmayı öğrenin.