Je me sens un peu stupide de publier cela quand cela semble assez simple et qu'il y a des tonnes de questions sur les chaînes / caractères / regex, mais je n'ai pas trouvé exactement ce dont j'avais besoin (sauf dans une autre langue: Supprimer tout le texte après un certain point ).
J'ai le code suivant:
[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);
}
J'ai essayé la solution dans la question ci-dessus (en espérant que la syntaxe serait la même!) Mais non. Je veux d'abord supprimer la queryString qui pourrait être de n'importe quelle longueur variable, puis supprimer le nom de la page, qui à nouveau pourrait être de n'importe quelle longueur.
Comment puis-je obtenir la suppression de la chaîne de requête de l'URL complète afin que ce test réussisse?
/
?Uri uri
, puis y accéderuri.Segments
. Cela renverra un tableau et "somepage.aspx" sera le dernier élément.Pour tout supprimer avant le premier
/
Pour tout supprimer après le premier
/
Pour tout supprimer avant le dernier
/
Pour tout supprimer après le dernier
/
Une solution encore plus simple pour supprimer des caractères après un char spécifié consiste à utiliser la méthode String.Remove () comme suit:
Pour tout supprimer après le premier
/
Pour tout supprimer après le dernier
/
la source
Voici une autre solution simple. Le code suivant renverra tout avant le '|' personnage:
En fait, vous pourriez avoir autant de séparateurs que vous le souhaitez, mais en supposant que vous n'ayez qu'un seul caractère de séparation, voici comment vous obtiendrez tout après le '|':
(Tout ce que j'ai changé dans le deuxième morceau de code était l'index du tableau.)
la source
La classe Uri est généralement votre meilleur choix pour manipuler les URL.
la source
Pour tout supprimer avant un caractère spécifique, utilisez ci-dessous.
Cela fait, prend tout avant le $ char et le supprime. Maintenant, si vous voulez supprimer les éléments après un personnage, changez simplement le +1 en -1 et vous êtes prêt!
Mais pour une URL, j'utiliserais la classe .NET intégrée pour prendre cela.
la source
Request.QueryString
vous aide àparameters
inclure les valeurs et dans leURL
exemple
donc la variable customername doit être égale à dave
Cordialement
la source
Je seconde Hightechrider: il existe une classe Url spécialisée déjà créée pour vous.
Je dois également souligner, cependant, que le replaceAll de PHP utilise des expressions régulières pour le modèle de recherche, ce que vous pouvez également faire dans .NET - regardez la classe RegEx.
la source
vous pouvez utiliser la méthode intégrée de .NET pour supprimer le fichier
QueryString
. c'est à dire,Request.QueryString.Remove["whatever"];
Essayez ceci ... J'espère que cela vous aidera.
la source