Yalnızca alfasayısal karakterlere, alt çizgi, nokta ve eksi (tire) karakter gibi birkaç taneye izin veren bir 'temiz' işlevi yazmaya çalışıyorum.Alt çizgi ile istenmeyen karakterleri değiştirmek için bir RegEx oluşturabilir misiniz?
Şu anda işlevimiz, kaynak dizgisinin düz char iterasyonunu kullanmaktadır, ancak onu okuduğum kadarıyla, daha temiz ve daha performanslıdır (ki bu bana geriye doğru görünüyor). düz yineleme, ancak ben bir çalışma RegEx alıncaya kadar onu profilleyemiyorum.)
Sorun benim için iki misli. Birincisi, şu regex ...
[a-zA-Z0-9]
... alfanümerik karakterlerden oluşan bir dizi ile eşleşen biliyorum ama nasıl ben de çizgi, nokta ve eksi karakteri eklerim? Onları '\' karakteri ile kaçar ve geri kalanı ile parantez arasında koyar mısınız?
İkincisi, eşleşmenin bir parçası olmayan herhangi bir karakter için (yani '?' Gibi başka bir noktalama işareti), bunun yerine alt çizgi yerleştirilmesini istiyoruz.
Düşüncem, istenen bir dizi karakterle eşleşmesidir, istenilen aralıkta olmayan tek bir karakterle eşleşir, sonra bunu değiştiririz. Ben
[^a-zA-Z0-9]
doğru bir yaklaşım mı ... bunun için RegEx böyle parantez arasındaki ilk karakteri olarak kırat dahil etmek olduğunu düşünüyorum? Eğer istemediğiniz karakterleri kaldırmak için çalışıyorsanız
Regex.Replace() yöntemi ben bakın, ama anladım sen – terrybozzio
gerekenler Benim sorum ya da bununla ilgili iki soru. – MarqueIV
Karakter sınıfınızı tersine çevirmek istiyorsunuz. yani. [^ a-zA-Z0-9] ', _not_ alfasayısal olan herşeyle eşleşecektir. –