Рассмотрим:
string value = "http://url.com/index?foo=[01234]&bar=1";
Мне нужно снять скобки [ ].
[
]
Я попытался
value = value.Replace("[01234]", "1234");
, но этого не произошлоработа.
Стоит ли искать регулярное выражение?
РЕДАКТИРОВАТЬ
Я не могу сделать только [ или ], потому что строкаможет содержать более одного, [ или ].Я просто хочу заменить foo = [blah] на foo = blah**.
foo = [blah]
foo = blah
Вы можете просто сделать -
value = value.Replace("[", "").Replace("]", "");
Или с регулярным выражением (не проверено) -
Regex regexObj = new Regex(@"(foo=)\[([0-9A-Za-z]+)\]"); value = value.Replace(subjectString, "$1$2");
Возможно, вам не нужно регулярное выражение.Простая замена строки сделает это:
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.
foo
value = value.Replace("[","").Replace("]","");
Я бы пошел с регулярным выражением:
var value = "http://url.com/index?foo=[01234]&bar=1"; value = Regex.Replace(value, "foo=\\[(.*?)\\]","foo=$1");