|
Регулярные выражения для 1С | ☑ | ||
---|---|---|---|---|
0
Shikolosa
07.02.19
✎
09:14
|
Добрый день! Требуется разложить наименование номенклатуры, например: Гильза ГЦР.103-М20х1,5-М20х1,5-10/8-120-6.3 на значения (у каждого символа свое значение: диаметр, резьба, длина, вид стали). Пытаюсь сделать это с помощью регулярных выражений. Может есть еще какие способы. Наименований тысяча, где-то могут стоять пробелы, где-то есть точки, где-то нет. УПП 1С:Предприятие 8.2 (8.2.19.130)
|
|||
1
ДенисЧ
07.02.19
✎
09:20
|
А как разделены показатели? Их последовательность всегда одинакова?
|
|||
2
cons24
07.02.19
✎
09:22
|
Если без регулярных то
СтрНайти("-", Строка); Лев() Прав() Сред() и т.д. Но лучше регулярные. Рекомендую infostart . ru/ public /464971/ и infostart . ru/ public /592108/ |
|||
3
ДенисЧ
07.02.19
✎
09:23
|
(2) Зачем найти? стрзаменить(строка, "-", Символы.ВК) и потом СтрПолучитьСтроку()
|
|||
4
Shikolosa
07.02.19
✎
09:24
|
(1) Последовательность всегда одинаковая,только могут отсутствовать необязательные показатели. Разделены пробелом или точкой, но это не всегда.(могут отсутствовать)
|
|||
5
TormozIT
гуру
07.02.19
✎
09:26
|
Для сложных разборов с регулярными выражениями рекомендую
http://devtool1c.ucoz.ru/index/konstruktor_reguljarnogo_vyrazhenija/0-60 |
|||
6
TormozIT
гуру
07.02.19
✎
09:27
|
(5) Там можно генерить готовый код на встроенном языке и загружать его обратно в конструктор.
|
|||
7
etc
07.02.19
✎
09:31
|
или СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)
если состав строки простой |
|||
8
spiller26
07.02.19
✎
09:35
|
вот статья хорошая
http://sayansoft.ru/public/592108/ |
|||
9
Shikolosa
07.02.19
✎
10:48
|
Спасибо, буду изучать)
|
|||
10
Вася Теркин
07.02.19
✎
11:21
|
(4) Смотри в сторону того, как адрес в 1С в Контактной информации сохранялся и разбирался автоматом...
|
|||
11
Shikolosa
08.02.19
✎
16:11
|
Подскажите пожалуйста, как можно с помощью регулярных выражений из строки: -103-5-10-8-120-6-3 вытащить первый ноль.
|
|||
12
Garykom
гуру
08.02.19
✎
16:15
|
(11) Покажите какой именно "первый ноль" вытащить и что должно получиться/вернуть на примере.
|
|||
13
Shikolosa
08.02.19
✎
16:21
|
-103-5-10-8-120-6-3 ноль между "1" и "3". В результате должен получиться "0"
|
|||
14
Garykom
гуру
08.02.19
✎
16:25
|
(13) Эээ тебе надо вернуть нечто между 1 и 3 или вернуть первый 0?
Вернуть первый 0 это сказать есть ли 0 или указать место первого 0 или что блин? Пойми что "получиться 0" можно без регэкспов и даже без исходной строки )) |
|||
15
Shikolosa
08.02.19
✎
16:29
|
Вернуть "нечто" между "1" и "3". "Нечто" это диапазон "1-5" Причем и "1" и "3" может быть диапазоном чисел "1-6"
|
|||
16
Shikolosa
08.02.19
✎
16:33
|
Извините, ошиблась: "Нечто" это диапазон "0-5"
|
|||
17
Garykom
гуру
08.02.19
✎
16:42
|
(16) да я догадался
Забейте на регэкспы и используйте Сред(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) https://helpme1c.ru/stroki-v-yazyke-1s-8-v-primerax "[1-6][0-5][1-6]" - вернет три символа и возьми средний |
|||
18
Garykom
гуру
08.02.19
✎
16:43
|
(17) регулярка "[1-6][0-5][1-6]" вернет 103
regexr.com/480om |
|||
19
Garykom
гуру
08.02.19
✎
16:43
|
||||
20
Shikolosa
08.02.19
✎
17:02
|
(17) Спасибо большое, получилось)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |