Bir dizeden tüm özel karakterleri kaldıracak bir C# işlevine ihtiyacımız var.Regex özel karakterleri kaldırın
Ayrıca, "George'un" "George" u değiştirmek mümkün mü (hem tek alıntı hem de karakterleri kaldır)?
Bir dizeden tüm özel karakterleri kaldıracak bir C# işlevine ihtiyacımız var.Regex özel karakterleri kaldırın
Ayrıca, "George'un" "George" u değiştirmek mümkün mü (hem tek alıntı hem de karakterleri kaldır)?
Bu yöntem, harfler, sayılar ve boşluklardan her şeyi kaldırır. Ayrıca 'Birçok insanlar ihtiyaç gibi Tıpkı iyi A-Z
ekleyin.
public static string RemoveSpecialCharacters(string input)
{
Regex r = new Regex("(?:[^a-z0-9 ]|(?<=['\"])s)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, String.Empty);
}
Merhaba Ryan, Kod için teşekkürler. İyi çalışıyor. Beyaz alanı görmezden gelmek mümkün mü? Beyaz boşluğun orada olmasını istiyorum. Teşekkürler. – user374760
Cevap bu ise, bu şekilde işaretlemeyi unutmayın. –
Merhaba Ryan, Beyaz boşlukları dizeden kaldırmak istemiyoruz. Lütfen nasıl yapılacağını bana bildirin. Çözüm olarak işaretledim. Teşekkürler. – user374760
özel karakterinin ne olduğunu biliyorsak yardımcı olabilirdik. O, onun yerine istemiyorum diğerlerini sıralandıran tutmak istediğiniz karakterlerin bir listesini tanımlamak için hile
public bool IsSpecialChar(char c) {
// Need you to fill this out
}
public string RemoveSpecialChars(string s) {
var builder = new System.Text.StringBuilder();
foreach (var cur in s) {
if (!IsSpecialChar(cur)) {
builder.Append(cur);
}
}
return builder.ToString();
}
Its daha iyi yapacak olsa İşte fonksiyon. Örneğin, perlregexes s/[^A-Za-z0-9]+//g
kullanmak sözcük olmayan sözcükleri kaldıracaktır (özür dilerim, C# regexes: D ile aşina değilim).
Diğer sorunlarınız için, belirli durumlarda dikkat etmeniz gereken bir önceki sözcüğe göre neyin kaldırılacağını tanımlayabilirsiniz (yalnızca önceki bir kelime varsa 's
kaldırılıyor gibi), aksi takdirde yalnızca 's
arasındaki tüm yinelemeleri kaldırın.
Sanırım sen/\ W + // g 'anlamına geldiğini (' tr /// 'regex-powered değil, ve" set "kelimesi karakterler "[A-Za-z0-9]' dan çok daha fazlasını içerir.) C# versiyonu Regex.Replace (giriş, @ "\ W +", String.Empty) 'dir. –
@Alan Moore haklıyım, bunu unutuyorum =). kelime karakterleri, bunun farkındayım, aslında istediği şeyin bu olduğunu düşündüm. – javs
Evet, ikimizi de trakristlerden azarlamak için kelime karakterleri hakkında attım. : D –
public static string RemoveSpecialCharacters(string input)
{
Regex r = new Regex(
"(?:[^a-zA-Z0-9 ]|(?<=['\"])s)",
RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, String.Empty);
}
Ryan'ın cevabı doğru. Karakter s izledi
En azından tanımlamak' Herhangi 'ya da kaldıracaktır özel karakteri Msgstr " – BoltClock
" demek istediniz: tüm bu harf, sayı veya boşluk değil mi? –