Что нового

Как заменить сложный разделитель?

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Есть прайс товаров.. Проблема в том, что надо отделить часто повторяющиеся название товаров от уникальных в каждой строке прайса.
Пример прайса:
,"105816L","Фреза пазовая с врезным зубом Z2+1 (длинная серия) D=10x30x120 S=8 ARDEN"," 1,782 ₽ ",,
,"105836","Фреза пазовая с врезным зубом Z2+1 D=12x30x90 S=8 ARDEN"," 1,724 ₽ ",,
,"105836L","Фреза пазовая с врезным зубом Z2+1 (длинная серия) D=12x30x120 S=8 ARDEN"," 1,982 ₽ ",,

Должно стать (по моему замыслу):
,"105816L","Фреза пазовая с врезным зубом","Z2+1 (длинная серия) D=10x30x120 S=8 ARDEN"," 1,782 ₽ ",,
,"105836","Фреза пазовая с врезным зубом","Z2+1 D=12x30x90 S=8 ARDEN"," 1,724 ₽ ",,
,"105836L","Фреза пазовая с врезным зубом","Z2+1 (длинная серия) D=12x30x120 S=8 ARDEN"," 1,982 ₽ ",,

Признак разделения - разделитель (",") ставится перед более чем 3 (или 4 ) НЕрусскими буквами (учитываются нерусские буквы, цифры, знаки +/-). При этом СИМВОЛЫ (",) - не учитываются

Такое - возможно?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$zz=',"105816L","Фреза пазовая с врезным зубом Z2+1 (длинная серия) D=10x30x120 S=8 ARDEN","  1,782 ? ",,'& @CRLF
$zz&=',"105836","Фреза пазовая с врезным зубом Z2+1 D=12x30x90 S=8 ARDEN","  1,724 ? ",,'& @CRLF
$zz&=',"105836L","Фреза пазовая с врезным зубом Z2+1 (длинная серия) D=12x30x120 S=8 ARDEN","  1,982 ? ",,'& @CRLF
MsgBox(32,'',StringRegExpReplace($zz,'(?<!,")\s([A-z0-9-+_]{3,})','","\1'))
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Код:
MsgBox(32,'',StringRegExpReplace($zz,'(?<!,")\s([A-z0-9-+_=]{3,})','","\1'))

еще символ "=" добавил.
но эта команда меняет ВСЕ совпадения, а нужно только первое, последующие - не надо.
Как это ограничить?


Добавлено:
Сообщение автоматически объединено:

Код:
MsgBox(32,'',StringRegExpReplace('Фреза пазовая Z=1 D=4x10x48 S=8 ARDEN','(?<!,")\s([A-z0-9-+_=]{3,})','","\1', 1))

Нашел :smile:
 
Верх