当这看起来很简单,并且有很多关于字符串/字符/正则表达式的问题时,我觉得发布这篇文章有点愚蠢,但是我找不到我需要的东西(除了用另一种语言:Remove All Text After Certain Point)。
我得到了下面的代码:
[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);
}
我尝试了上面问题中的解决方案(希望语法是相同的!),但没有。我想先删除queryString,它可以是任何可变长度,然后删除页面名称,它也可以是任何长度。
我怎样才能从完整的URL中删除查询字符串,以便通过此测试?
9条答案
按热度按时间ufj5ltwl1#
对于字符串操作,如果只想删除?之后的所有内容,可以执行以下操作
编辑:如果最后一个斜杠之后的内容,请执行以下操作
或者,由于您使用的是URL,因此可以像下面的代码那样对它执行一些操作
fcg9iug32#
删除第一个
/
之前的所有内容删除第一个
/
之后的所有内容删除最后一个
/
之前的所有内容删除最后一个
/
之后的所有内容删除指定字符后的字符的更简单的解决方案是使用String.Remove()方法,如下所示:
删除第一个
/
之后的所有内容删除最后一个
/
之后的所有内容zyfwsgd63#
下面是另一个简单的解决方案。下面的代码将返回"| '字符:
实际上,您可以使用任意多个分隔符,但假设您只有一个分隔符,下面是如何获取'| ':
(All我在第二段代码中更改的是数组的索引。)
zed5wv104#
Uri class通常是处理URL的最佳选择。
luaexgnf5#
要删除特定字符之前的所有内容,请使用下面的命令。
这个函数所做的就是,把$ char之前的所有元素都去掉。现在如果你想去掉一个字符之后的元素,只需要把+1改成-1,你就可以设置了!
但是对于URL,我会使用内置的.NET类来处理它。
pengsaosao6#
Request.QueryString
可帮助您获取parameters
和URL
中包含的值范例
因此customername变量应等于dave
问候
6za6bjd07#
我附议高科技骑士:已经为您构建了一个专门的URL类。
不过,我还必须指出,PHP的replaceAll使用正则表达式作为搜索模式,这在.NET中也可以做到--看看RegEx类。
vfhzx4xs8#
你可以使用.NET的内置方法来删除
QueryString
.例如,Request.QueryString.Remove["whatever"];
此处,[ ]中的 whatever 是要删除的
querystring
的名称。试试这个...我希望这个会有帮助。
nwlls2ji9#
可以使用此扩展方法移除字符串中的查询参数(
?
之后的所有内容