Bagaimana cara menghapus semua karakter non alfanumerik dari string kecuali karakter dasbor dan spasi?
606
Ganti [^a-zA-Z0-9 -]
dengan string kosong.
Regex rgx = new Regex("[^a-zA-Z0-9 -]");
str = rgx.Replace(str, "");
-
harus di akhir kelas karakter, atau melarikan diri dengan garis miring terbalik, untuk mencegah digunakan untuk rentang.replaceAll
fungsi alih-alihreplace
.return Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled);
Pertanyaan dasar yang sama""
&string.Empty
persis sama. stackoverflow.com/questions/151472/…Saya bisa menggunakan RegEx, mereka dapat memberikan solusi yang elegan tetapi mereka dapat menyebabkan masalah performane. Inilah salah satu solusinya
Saat menggunakan kerangka kerja ringkas (yang tidak memiliki FindAll)
Ganti FindAll dengan 1
1 Komentar oleh ShawnFeatherly
sumber
char[] arr = str.Where(c => (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-')).ToArray();
Anda dapat mencoba:
Dimana
s
senar Anda.sumber
Menggunakan System.Linq
sumber
Regex adalah
[^\w\s\-]*
:\s
lebih baik digunakan daripada spasi (), karena mungkin ada tab di teks.
sumber
Berdasarkan jawaban untuk pertanyaan ini, saya membuat kelas statis dan menambahkan ini. Pikir itu mungkin bermanfaat bagi sebagian orang.
Maka metode tersebut dapat digunakan sebagai:
sumber
Ingin sesuatu dengan cepat?
Ini akan memungkinkan Anda untuk menentukan karakter mana yang ingin Anda izinkan juga.
sumber
Berikut adalah solusi ramah alokasi cepat tumpukan non-regex yang adalah apa yang saya cari.
Edisi tidak aman.
Dan bagi mereka yang tidak ingin menggunakan tidak aman atau tidak percaya peretasan panjang tali.
sumber
Saya telah membuat solusi yang berbeda, dengan menghilangkan karakter Kontrol , yang merupakan masalah awal saya.
Itu lebih baik daripada memasukkan semua karakter "istimewa tapi bagus" dalam daftar
lebih sederhana, jadi saya pikir ini lebih baik!
sumber
Berikut adalah metode ekstensi menggunakan jawaban @ata sebagai inspirasi.
atau jika Anda memerlukan karakter tambahan selain tanda hubung ...
sumber
Saya menggunakan variasi dari salah satu jawaban di sini. Saya ingin mengganti spasi dengan "-" sehingga SEO friendly dan juga membuat huruf kecil. Juga tidak mereferensikan system.web dari lapisan layanan saya.
sumber
Ini adalah versi yang sangat singkat
sumber
Ada cara yang jauh lebih mudah dengan Regex.
sumber