考虑:
string value = "http://url.com/index?foo=[01234]&bar=1";
我需要移除[
]
,括号。
我试过
value = value.Replace("[01234]", "1234");
这不起作用。
我应该查看正则表达式吗?
编辑
我不能只[
或]
,因为字符串可以包含多个,[
或]
。我只想将foo = [blah]
替换为foo = blah
**。
答案 0 :(得分:3)
你可以做 -
value = value.Replace("[", "").Replace("]", "");
修改强>
或使用正则表达式(未经测试) -
Regex regexObj = new Regex(@"(foo=)\[([0-9A-Za-z]+)\]");
value = value.Replace(subjectString, "$1$2");
答案 1 :(得分:1)
value = value.Replace("[","").Replace("]","");
答案 2 :(得分:1)
您可能不需要正则表达式。一个简单的字符串替换就可以了:
using System;
using System.Web;
class Program
{
static void Main()
{
string value = "http://url.com/index?foo=[01234]&bar=1";
var uriBuilder = new UriBuilder(value);
var query = HttpUtility.ParseQueryString(uriBuilder.Query);
query["foo"] = query["foo"].Replace("[", "").Replace("]", "");
uriBuilder.Query = query.ToString();
value = uriBuilder.ToString();
Console.WriteLine(value);
}
}
这将确保只删除foo
参数的括号。
答案 3 :(得分:0)
我选择正则表达式:
var value = "http://url.com/index?foo=[01234]&bar=1";
value = Regex.Replace(value, "foo=\\[(.*?)\\]","foo=$1");