删除括号

时间:2011-08-30 17:47:45

标签: c# regex string

考虑:

string value = "http://url.com/index?foo=[01234]&bar=1";

我需要移除[ ],括号。

我试过

value = value.Replace("[01234]", "1234");

这不起作用。

我应该查看正则表达式吗?

编辑

我不能只[],因为字符串可以包含多个,[]。我只想将foo = [blah]替换为foo = blah **。

4 个答案:

答案 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");