Eu me sinto meio idiota ao postar isso quando isso parece meio simples e há toneladas de perguntas sobre strings / caracteres / regex, mas não consegui encontrar exatamente o que eu precisava (exceto em outro idioma: Remover todo o texto após determinado ponto ).
Eu tenho o seguinte 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);
}
Eu tentei a solução na pergunta acima (esperando que a sintaxe fosse a mesma!) Mas não. Quero primeiro remover a queryString que pode ter qualquer tamanho variável e, em seguida, remover o nome da página, que novamente pode ter qualquer tamanho.
Como posso remover a string de consulta do URL completo para que este teste seja aprovado?
/
?Uri uri
e acessaruri.Segments
. Isso retornará uma matriz e "somepage.aspx" será o último item.Para remover tudo antes do primeiro
/
Para remover tudo após o primeiro
/
Para remover tudo antes do último
/
Para remover tudo após o último
/
Uma solução ainda mais simples para remover caracteres após um caractere especificado é usar o método String.Remove () da seguinte maneira:
Para remover tudo após o primeiro
/
Para remover tudo após o último
/
fonte
Aqui está outra solução simples. O código a seguir retornará tudo antes do '|' personagem:
Na verdade, você pode ter quantos separadores quiser, mas, assumindo que você tem apenas um caractere de separação, eis como você obteria tudo após o '|':
(Tudo o que mudei no segundo trecho de código foi o índice da matriz.)
fonte
A classe Uri geralmente é sua melhor aposta para manipular URLs.
fonte
Para remover tudo antes de um caractere específico, use abaixo.
O que isso faz é pegar tudo antes do $ char e removê-lo. Agora, se você deseja remover os itens após um personagem, basta alterar o +1 para -1 e pronto!
Mas para uma URL, eu usaria a classe .NET incorporada para tirar isso.
fonte
Request.QueryString
ajuda você a obter osparameters
valores e incluídos noURL
exemplo
portanto, a variável customername deve ser igual a dave
Saudações
fonte
Eu segundo Hightechrider: já existe uma classe de URL especializada para você.
Devo também salientar, no entanto, que o replaceAll do PHP usa expressões regulares para o padrão de pesquisa, o que você também pode fazer no .NET - veja a classe RegEx.
fonte
você pode usar o método interno do .NET para remover o
QueryString
. ou seja,Request.QueryString.Remove["whatever"];
Tente isso ... Espero que isso ajude.
fonte