Обработка текста. Замена нескольких значений

Dmitry

Client
Регистрация
03.07.2014
Сообщения
66
Благодарностей
5
Баллы
8
Всем привет. При обработке текста столкнулся с такой проблемой: у меня есть текст "Цена: 15 000р.", мне нужно взять только "15000". Каким образом обрезать "Цена:", " " и "р." - в одном экшене? Пробовал писать слитно все эти значения, м/у на значениями ставил {-String.Tab-} и {-//-} - не получилось.

 

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Так делай не заменой, а выбери пункт "Regex" (регулярные выражения) и туда впиши, что нужно взять. В твоем случае просто 15 000 вписать нужно.
 

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43

Botin

Client
Регистрация
16.02.2014
Сообщения
423
Благодарностей
957
Баллы
93
Ну так, вероятнее всего, ТС нужно обрабатывать и другие цены, потому регулярка нужна не конкретно по поиску числа 15000.
Сразу парсим "15 000" путем проставки в конструкторе регулярных выражений, что идет до и после данного числа. Ну а затем уже убираем пробел путем замены, к примеру, на пустоту.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Я бы заменил пробелы на пустоту а потом использовал регулярную \d{1,7}
 

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Это если в тексте не будет больше цифр наподобие, например, артикулов или что-то еще типа того )
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Конечно
 

Dmitry

Client
Регистрация
03.07.2014
Сообщения
66
Благодарностей
5
Баллы
8
Ребят, я не совсем понял, какие всё таки разделители поставить в "замене", что бы по нескольким параметрам замена шла?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
Ребят, я не совсем понял, какие всё таки разделители поставить в "замене", что бы по нескольким параметрам замена шла?
если делать замену по регулярке в режиме Regex, то можно делать конструкцию через: | (или).. например пишем в поле Что искать: (регулярка1)|(регулярка2)|(регулярка3) и т.д..
 
Последнее редактирование:
  • Спасибо
Реакции: refrain и Dmitry

freekey

Client
Регистрация
20.09.2012
Сообщения
70
Благодарностей
8
Баллы
8
Ребят, я не совсем понял, какие всё таки разделители поставить в "замене", что бы по нескольким параметрам замена шла?
Насколько мне известно, так нельзя. Я всегда делаю несколько замен подряд.
Можно сохранять в ту же переменную, с которой берутся данные до замены.
Например, взять переменную Х заменить что-то на пустоту и сохранить в переменную Х же.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
Насколько мне известно, так нельзя. Я всегда делаю несколько замен подряд.
Можно сохранять в ту же переменную, с которой берутся данные до замены.
Например, взять переменную Х заменить что-то на пустоту и сохранить в переменную Х же.
если делать замену в режиме Regex, то можно..
 

freekey

Client
Регистрация
20.09.2012
Сообщения
70
Благодарностей
8
Баллы
8

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113

freekey

Client
Регистрация
20.09.2012
Сообщения
70
Благодарностей
8
Баллы
8

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113

freekey

Client
Регистрация
20.09.2012
Сообщения
70
Благодарностей
8
Баллы
8
Аа, теперь понял.
Можно использовать разделитель, для того чтобы сделать замену для нескольких условий. То есть для задачи ТС нужно заменить на пустоту (Цена:\ )|(\ )|(р\.) правильно?
Спасибо, не знал, возьму на вооружение.
 

Dmitry

Client
Регистрация
03.07.2014
Сообщения
66
Благодарностей
5
Баллы
8
если делать замену по регулярке в режиме Regex, то можно делать конструкцию через: | (или).. например пишем в поле Что искать: (регулярка1)|(регулярка2)|(регулярка3) и т.д..
Большое спасибо! Помогло:-)
 

Sewanew

Пользователь
Регистрация
28.01.2017
Сообщения
134
Благодарностей
3
Баллы
18
Т.е. правильно ли я понял, с помощью функции замена, одним экшеном можно заменить только один символ или слово, а с помощью регекс можно одним экшеном сделать массовую замену нескольких символов или слов. Если это так, то подскажите где подробнее почитать, потому что конструкция (регулярка1)|(регулярка2)|(регулярка3), у меня почему то не работает, что я делаю не так?
 

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