Помогите исправить ошибку в коде С# (в списке урлов отрезать в урлах динамические хвосты.)

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8
Задача в списке урлов отрезать в урлах динамические хвосты.

Вот такой код сделал, но
Компиляция кода Ошибка в действии "CS1009" "Unrecognized escape sequence". [Строка: 4; Cтолбец: 30]

// получаем список, в котором будем искать
var sourceList = project.Lists["Список для обработчика url"];
var parserRegex = new Regex("\?.*"); // Этой регуляркой ищу в урле динамический хвост начинающийся с "?"

lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++) // Пробегаемся по списку
{
if (parserRegex.IsMatch(sourceList)) // Если регулярка срабатывает, то..
{
sourceList=""; // Заменяем текущий элемент на пустоту ""
}
}
}
 

lokiys

Moderator
Регистрация
01.02.2012
Сообщения
4 799
Благодарностей
1 187
Баллы
113

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 967
Благодарностей
4 411
Баллы
113
if (parserRegex.IsMatch(sourceList[i]))
Да там и ниже ошибок полно будет.
 
  • Спасибо
Реакции: Remart

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8
C#:
var parserRegex = new Regex(@"\?.*");
Эта штука помогла, но он мне всю строчку заменяет на пустоту, а мне нужно заменить только кусок из регулярки.

Можешь помочь дожать, если не сложно?
 

Remart

Client
Регистрация
06.10.2016
Сообщения
52
Благодарностей
10
Баллы
8
Решил. В конкретном примере всё что начинается в списке с ? в строке и идет до конца строки заменяю на пустоту ""

C#:
IZennoList list = project.Lists["Список"];
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list.Count; i++)
        list[i] = Regex.Replace(list[i], @"\?.*", "");
}
 
Последнее редактирование:

radv

Client
Регистрация
11.05.2015
Сообщения
3 776
Благодарностей
1 943
Баллы
113
Эта штука помогла, но он мне всю строчку заменяет на пустоту, а мне нужно заменить только кусок из регулярки.

Можешь помочь дожать, если не сложно?
Eсли нужна часть после ? перед использованием, нужно проверять строку на наличие ?.
Если в строке не будет ?, то без проверки, как раз получите пустоту вместо нужного значения.
Или можно еще сделать Split по ? и брать только нужную часть.
 
Последнее редактирование:
  • Спасибо
Реакции: iBotovod и Remart

radv

Client
Регистрация
11.05.2015
Сообщения
3 776
Благодарностей
1 943
Баллы
113
  • Спасибо
Реакции: Remart

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)