Saya merasa agak bodoh memposting ini ketika ini sepertinya sederhana dan ada banyak pertanyaan tentang string / karakter / regex, tetapi saya tidak dapat menemukan apa yang saya butuhkan (kecuali dalam bahasa lain: Hapus Semua Teks Setelah Titik Tertentu ).
Saya mendapat kode berikut:
[Test]
public void stringManipulation()
{
String filename = "testpage.aspx";
String currentFullUrl = "http://localhost:2000/somefolder/myrep/test.aspx?q=qvalue";
String fullUrlWithoutQueryString = currentFullUrl.Replace("?.*", "");
String urlWithoutPageName = fullUrlWithoutQueryString.Remove(fullUrlWithoutQueryString.Length - filename.Length);
String expected = "http://localhost:2000/somefolder/myrep/";
String actual = urlWithoutPageName;
Assert.AreEqual(expected, actual);
}
Saya mencoba solusi dalam pertanyaan di atas (berharap sintaksnya akan sama!) Tetapi tidak. Saya ingin terlebih dahulu menghapus queryString yang bisa berupa panjang variabel apa pun, lalu hapus nama halaman, yang lagi-lagi bisa berapa pun panjangnya.
Bagaimana saya bisa menghapus string kueri dari URL lengkap sehingga tes ini lolos?
/
?Uri uri
, dan kemudian mengaksesuri.Segments
. Itu akan mengembalikan array, dan "somepage.aspx" akan menjadi item terakhir.Untuk menghapus semuanya sebelum yang pertama
/
Untuk menghapus semuanya setelah yang pertama
/
Untuk menghapus semuanya sebelum yang terakhir
/
Untuk menghapus semuanya setelah yang terakhir
/
Solusi yang bahkan lebih sederhana untuk menghapus karakter setelah karakter yang ditentukan adalah dengan menggunakan metode String.Remove () sebagai berikut:
Untuk menghapus semuanya setelah yang pertama
/
Untuk menghapus semuanya setelah yang terakhir
/
sumber
Ini solusi sederhana lain. Kode berikut akan mengembalikan semuanya sebelum '|' karakter:
Sebenarnya, Anda dapat memiliki separator sebanyak yang Anda inginkan, tetapi dengan asumsi Anda hanya memiliki satu karakter pemisahan, berikut adalah cara Anda mendapatkan semuanya setelah '|':
(Yang saya ubah di bagian kedua kode adalah indeks array.)
sumber
Kelas Uri umumnya merupakan taruhan terbaik Anda untuk memanipulasi URL.
sumber
Untuk menghapus semuanya sebelum karakter tertentu, gunakan di bawah ini.
Apa yang dilakukan adalah, mengambil semuanya sebelum $ char dan menghapusnya. Sekarang jika Anda ingin menghapus item setelah karakter, cukup ganti +1 ke -1 dan Anda sudah siap!
Tetapi untuk URL, saya akan menggunakan kelas .NET bawaan untuk mengambilnya.
sumber
Request.QueryString
membantu Anda untuk mendapatkanparameters
dan nilai - nilai yang disertakan dalamURL
contoh
jadi variabel customername harus sama dengan dave
salam
sumber
Saya Hightechrider kedua: ada kelas Url khusus yang sudah dibangun untuk Anda.
Saya juga harus menunjukkan, bahwa replaceAll PHP menggunakan ekspresi reguler untuk pola pencarian, yang dapat Anda lakukan dalam. NET juga - lihat kelas RegEx.
sumber
Anda dapat menggunakan .NET's built in method untuk menghapus
QueryString
. yaitu,Request.QueryString.Remove["whatever"];
Coba ini ... Saya harap ini akan membantu.
sumber