Снятие кронштейнов - PullRequest
       1

Снятие кронштейнов

0 голосов
/ 30 августа 2011

Рассмотрим:

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

Мне нужно снять скобки [ ].

Я попытался

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

, но этого не произошлоработа.

Стоит ли искать регулярное выражение?

РЕДАКТИРОВАТЬ

Я не могу сделать только [ или ], потому что строкаможет содержать более одного, [ или ].Я просто хочу заменить foo = [blah] на foo = blah**.

Ответы [ 4 ]

3 голосов
/ 30 августа 2011

Вы можете просто сделать -

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

РЕДАКТИРОВАТЬ

Или с регулярным выражением (не проверено) -

    Regex regexObj = new Regex(@"(foo=)\[([0-9A-Za-z]+)\]");
    value = value.Replace(subjectString, "$1$2");
1 голос
/ 30 августа 2011

Возможно, вам не нужно регулярное выражение.Простая замена строки сделает это:

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.

1 голос
/ 30 августа 2011
value = value.Replace("[","").Replace("]","");
0 голосов
/ 30 августа 2011

Я бы пошел с регулярным выражением:

var value = "http://url.com/index?foo=[01234]&bar=1"; 
value = Regex.Replace(value, "foo=\\[(.*?)\\]","foo=$1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...