Me siento un poco tonto al publicar esto cuando esto parece un poco simple y hay toneladas de preguntas sobre cadenas / caracteres / expresiones regulares, pero no pude encontrar lo que necesitaba (excepto en otro idioma: Eliminar todo el texto después de cierto punto ).
Tengo el siguiente código:
[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);
}
Intenté la solución en la pregunta anterior (¡esperando que la sintaxis sea la misma!) Pero no. Primero quiero eliminar queryString, que podría tener cualquier longitud variable, luego eliminar el nombre de la página, que nuevamente podría tener cualquier longitud.
¿Cómo puedo eliminar la cadena de consulta de la URL completa de modo que pase esta prueba?
/
?Uri uri
y luego accederuri.Segments
. Eso devolverá una matriz, y "somepage.aspx" será el último elemento.Para eliminar todo antes del primero
/
Para eliminar todo después del primero
/
Para eliminar todo antes del último
/
Para eliminar todo después del último
/
Una solución aún más simple para eliminar caracteres después de un carácter especificado es utilizar el método String.Remove () de la siguiente manera:
Para eliminar todo después del primero
/
Para eliminar todo después del último
/
fuente
Aquí hay otra solución simple. El siguiente código devolverá todo antes del '|' personaje:
De hecho, podría tener tantos separadores como desee, pero suponiendo que solo tenga un carácter de separación, así es como obtendrá todo después del '|':
(Todo lo que cambié en el segundo fragmento de código fue el índice de la matriz).
fuente
La clase Uri es generalmente su mejor apuesta para manipular URL.
fuente
Para eliminar todo antes de un carácter específico, use a continuación.
Lo que esto hace es tomar todo antes del $ char y eliminarlo. Ahora, si desea eliminar los elementos después de un personaje, ¡simplemente cambie el +1 a -1 y estará listo!
Pero para una URL, usaría la clase .NET incorporada para tomar eso.
fuente
Request.QueryString
le ayuda a obtener losparameters
valores y incluidos en elURL
ejemplo
entonces la variable del nombre del cliente debe ser igual a Dave
Saludos
fuente
Segundo Hightechrider: hay una clase de URL especializada ya construida para ti.
Sin embargo, también debo señalar que el replaceAll de PHP usa expresiones regulares para el patrón de búsqueda, lo que también puedes hacer en .NET: mira la clase RegEx.
fuente
puede usar el método incorporado de .NET para eliminar el
QueryString
. es decir,Request.QueryString.Remove["whatever"];
Prueba esto ... Espero que esto ayude.
fuente