正则表达式以获取没有查询字符串的Url

时间:2011-09-28 05:48:40

标签: c# regex

我正在寻找一种使用正则表达式解析URL而不使用queryString的方法。

我的网址是"http://abc.com/csd?/aaa/bbb"

预期与"http://abc.com/csd"

相似

有人帮我这个。

3 个答案:

答案 0 :(得分:7)

如果你只想要查询字符串之前的所有内容:

^[^?]+

答案 1 :(得分:2)

您可以使用SubstringIndexOf

var someString = "http://abc.com/csd?/aaa/bbb";
someString.Substring(0, someString.IndexOf('?') - 1);

虽然这完全符合您问题中所述的要求,但这可能是一种更简单的方法 - 如果实际实施不需要是RegEx。

答案 2 :(得分:2)

Regex r = new Regex("(^[^?]+)");
Match m = r.Match("http://example.com/csd?/aaa/bbb");
// m.Groups[0].Value is your URL