обрезка в строках списка

lucen

Пользователь
Регистрация
18.03.2014
Сообщения
132
Благодарностей
9
Баллы
18
Доброго времени!
Вопрос такой:Есть у меня список, допустим из тысячи строк,в начале каждой строки есть лишние элементы, их нужно обрезать ,например(ппп привет ,ппп пока и тд.), как обрезать не по одной строке, а все строки сразу(все элементы обрезки, в каждой строке одинаковые ) и возможно ли это вообще.
Спасибо!
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Возьмите текст через экшен Файл и экшеном Замена регуляркой замените все что не нужно на пустоту.
В качестве регулярки можно использовать конструкцию (привет|пока|Саша) для удаления всех слов перечисленных
 
  • Спасибо
Реакции: zennoX и lucen

lucen

Пользователь
Регистрация
18.03.2014
Сообщения
132
Благодарностей
9
Баллы
18
Возьмите текст через экшен Файл и экшеном Замена регуляркой замените все что не нужно на пустоту.
В качестве регулярки можно использовать конструкцию (привет|пока|Саша) для удаления всех слов перечисленных
спасибо! обрезать нужно один и тот же элемент ,что облегчает задачу.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Код:
var list= project.Lists["Список 1"];
for(int i =0;i<list.Count;i++)
{
list[i]=list[i].Replace("Что меняем","На что меняем");
}
return 0;
 
  • Спасибо
Реакции: LmPopo, RealDiGi и lucen

lucen

Пользователь
Регистрация
18.03.2014
Сообщения
132
Благодарностей
9
Баллы
18

lucen

Пользователь
Регистрация
18.03.2014
Сообщения
132
Благодарностей
9
Баллы
18

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
быть такого не может... он бы тогда не работал... покажите, как он у вас выглядит
 

lucen

Пользователь
Регистрация
18.03.2014
Сообщения
132
Благодарностей
9
Баллы
18

lucen

Пользователь
Регистрация
18.03.2014
Сообщения
132
Благодарностей
9
Баллы
18
быть такого не может... он бы тогда не работал... покажите, как он у вас выглядит
лучше расскажу---в коде "что менять" у меня стоит "1", "на что менять" стоит "2"
строки в списке все выглядят так 1 ,но ни одной 1 на 2 не поменяло вот и всё!
А в переменную ложит 0
 
Последнее редактирование:

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
в переменную и должно класть 0)
Попробуйте после блока с кодом взять экшеном количество строк в списке. у меня так бывало, что пока список еще как нибудь не деренешь у него старые значения остаются
 

lucen

Пользователь
Регистрация
18.03.2014
Сообщения
132
Благодарностей
9
Баллы
18
в переменную и должно класть 0)
Попробуйте после блока с кодом взять экшеном количество строк в списке. у меня так бывало, что пока список еще как нибудь не деренешь у него старые значения остаются
cпс
 

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
А как сделать, чтоб искало по регулярке?
Код:
var list= project.Lists["Список 1"];
string pattern = "тут регулярочка" //не забыаем экранировать спецсимволы
for(int i =0;i<list.Count;i++)
{
list[i]=list[i].Replace(System.Text.RegularExpressions.Regex.Match(list[i],pattern).Value,"На что меняем");
}
return 0
Должно работать вроде
 
  • Спасибо
Реакции: LmPopo

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
Код:
var list= project.Lists["Список 1"];
string pattern = "тут регулярочка" //не забыаем экранировать спецсимволы
for(int i =0;i<list.Count;i++)
{
list[i]=list[i].Replace(System.Text.RegularExpressions.Regex.Match(list[i],pattern).Value,"На что меняем");
}
return 0
Должно работать вроде
Проверил, ошибка в логе.
https://www.dropbox.com/s/sjxfyyj6qtnqo9q/1.jpg
Но в списке заменяет в двух первых строчках.
 

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
Во второй строке после "тут регулярочка" точку с запятой нужно поставить.
string pattern = "тут регулярочка"; //не забыаем экранировать спецсимволы
 

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
Во второй строке после "тут регулярочка" точку с запятой нужно поставить.
string pattern = "тут регулярочка"; //не забыаем экранировать спецсимволы
Я поставил и тут, и после return 0 .
В логе было указано )

Добавлено спустя 4 минуты:
Я так понял, что если в строке не находится соответствие рег. выражению, происходит сбой.
 

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
Тогда в списке пустая строка попалась.
 

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
Вот так можно попробовать
Код:
 var list = project.Lists["Список 1"];
            string pattern = "тут регулярочка"; //не забыаем экранировать спецсимволы
            for (int i = 0; i < list.Count; i++)
            {
                try
                {
                    list[i] = list[i].Replace(System.Text.RegularExpressions.Regex.Match(list[i], pattern).Value, "На что меняем");
                }
                catch (Exception) { }
            }
            return 0;
 
  • Спасибо
Реакции: LmPopo

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
Вот так можно попробовать
Код:
 var list = project.Lists["Список 1"];
            string pattern = "тут регулярочка"; //не забыаем экранировать спецсимволы
            for (int i = 0; i < list.Count; i++)
            {
                try
                {
                    list[i] = list[i].Replace(System.Text.RegularExpressions.Regex.Match(list[i], pattern).Value, "На что меняем");
                }
                catch (Exception) { }
            }
            return 0;
Ещё вопрос, не работает замена групп, регулярка допустим (http://.*?/).* - надо заменить на $1
Как это провернуть? )
 

Irbis

Client
Регистрация
02.03.2014
Сообщения
195
Благодарностей
120
Баллы
43
Код:
string pattern = @"(http://.*?/).*";
  for (int i = 0; i < project.Lists["Список 1"].Count; i++)
  {
  try
  {
  project.Lists["Список 1"][i] = System.Text.RegularExpressions.Regex.Replace(project.Lists["Список 1"][i], pattern, "$1");
  }
  catch (Exception) { }
  }
 
Последнее редактирование:
  • Спасибо
Реакции: LmPopo

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