|
Регулярные выражения в платформе | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
MM
02.08.22
✎
10:58
|
1С наконец-то анонсировала поддержку регулярных выражений, хотя как-то на мой взгляд куцо.
https://wonderland.v8.1c.ru/blog/podderzhka-regulyarnykh-vyrazheniy-vo-vstroennom-yazyke/ |
||||||||||
1
mikecool
02.08.22
✎
10:59
|
разверните вашу мысль, не стесняйтесь
|
||||||||||
2
СеменовСемен
02.08.22
✎
11:02
|
Странно что они не сделали объект, а напихали кучу глобальных функций
|
||||||||||
3
unbred
02.08.22
✎
11:04
|
(0) очевидная штука, которая напрашивалась в момент создания 1с в принципе.
Буду использовать новые возможности |
||||||||||
4
unenu
02.08.22
✎
11:05
|
это еще в 8.0 должно было быть в коробке.
что ж, 20 лет спустя и готово. что дальше затолкают в платформу: распознавания лиц, машинное обучение, поддержка ВР? хотя это тоже будет еще 20 лет спустя. |
||||||||||
5
MM
02.08.22
✎
11:05
|
(1) Наконец-то дождался. Но без возможности использовать подвыражения и удобного получения выбранных подстрок это потребует обёртки. Так же к сожалению продолжение поиска потребует повторного вызова функции, что не выглядит быстро. И ещё, пока не описаны технические детали реализации механизма сложно будет переходить на платформенные регулярки.
|
||||||||||
7
MM
02.08.22
✎
11:08
|
(3) шутка состоит в том что механизм есть в платформе давным давно в рамках ICU, вот только он не был выведен в язык 1С. У Орефкова была ВК который этот механизм могла доставать, но, к сожалению, была не очень стабильна.
|
||||||||||
8
Garykom
гуру
02.08.22
✎
11:11
|
Хрень.
Ибо надо не по строкам а по объектам (как в памяти так и в базе) 1С. |
||||||||||
9
Garykom
гуру
02.08.22
✎
11:12
|
(8)+ По типу есть некая ТЗ со строковым полем или справочник Номенклатура с наименованием
И вот по ТЗ или по справочнику искать регуляркой |
||||||||||
10
СеменовСемен
02.08.22
✎
11:14
|
(9) это ты linq описываешь, а не регулярки
|
||||||||||
11
vde69
02.08.22
✎
11:16
|
регулярные выражения сделают код нечитаемым... примерно как скрипты unix системах.
вот например кто с лету может означать что делает шаблон ^#\/база\.была.*сдохла Мне это не нужно |
||||||||||
12
СеменовСемен
02.08.22
✎
11:18
|
Спорить о том нужно или не нужно уже поздно
|
||||||||||
13
MM
02.08.22
✎
11:19
|
(9) А как делать поиск по базе если её SQL такого не умеет, а кроме того у каждого объекта может быть обработчик получения представления, который его превратит в произвольную строку. Кроме того мне гораздо интереснее не поиск, а получение подстрок и их замена.
(11) Есть у RegExp такой недостаток, что их не сложно писать, но вот читать, особенно чужие, это печаль. И нужно прочесть Фридла. |
||||||||||
14
Волшебник
02.08.22
✎
11:20
|
Я поддерживаю. Будет много новых интересных веток на форуме.
|
||||||||||
15
vde69
02.08.22
✎
11:20
|
если сделают конструктор регулярок (типа как конструктор запросов) тогда взлетит
|
||||||||||
16
unbred
02.08.22
✎
11:20
|
(11) ты же как-то можешь читать такое: ?("база была",false,"сдохла")
привыкнешь) |
||||||||||
17
Кирпич
02.08.22
✎
11:22
|
(11) Ну всяко проще, чем читать страницу кода, который это ищет без регулярок
|
||||||||||
19
Garykom
гуру
02.08.22
✎
11:24
|
(16) Нет я такое читать не могу
Как вижу складываю маты на автора и стараюсь переписать на Если Тогда Иначе |
||||||||||
20
Ryzeman
02.08.22
✎
11:29
|
(4) +1
Хорошо что добавили. Рефакторить всё что на RegExp и прочие поиски через запросы и иную дичь я, конечно, не буду. Но новое - почему бы и нет? Буду использовать новые возможности |
||||||||||
21
Asmody
02.08.22
✎
11:30
|
(0) И как это они не изобрели свой язык регулярок? Как-то не по одинесовски!
|
||||||||||
22
MM
02.08.22
✎
11:32
|
(21) Синтаксис пока не описан, ждём сюрпризов.
|
||||||||||
23
ИначеЕсли
02.08.22
✎
11:35
|
Для 1С:исполнителя будет полезно.
Буду использовать новые возможности |
||||||||||
24
ИначеЕсли
02.08.22
✎
11:37
|
Но выглядит бедновато без возможности искать по файлам/каталогам и внутри коллекций 1с
|
||||||||||
25
Ryzeman
02.08.22
✎
11:38
|
(22) СтрЗаменитьПоРегулярномуВыражению(МояСтрока, "♂☻база☻♂☻была☻♂", "сдохла")
? |
||||||||||
26
ansh15
02.08.22
✎
12:16
|
В качестве справки будет отсылать на regex101 или аналогичное. Хотя, могут и на ИТС сделать.
|
||||||||||
27
bolobol
02.08.22
✎
12:42
|
Пример задачи приведите, пожалуйста. Хорошо бы не один.
Мне это не нужно |
||||||||||
28
СеменовСемен
02.08.22
✎
12:49
|
(27) обработка входящих данных, а ля текст назначения платежа
|
||||||||||
29
vde69
02.08.22
✎
13:04
|
(27) примеры
помощник формирования наименования, хитрый поиск дублей |
||||||||||
30
Гений 1С
гуру
02.08.22
✎
13:07
|
(0) хорошо, хотя я 100500 раз писал свои разборы строк.
|
||||||||||
31
bolobol
02.08.22
✎
13:10
|
(28) СтрНайти - предостаточно, не встречал более хитрой необходимости, а это очень частая задача
(29) формирование наименования - где тут регулярки? Поиск дублей - слишком специфичная задача, если даже пользователи не могут сами наткнуться - только усложнять им жизнь, что им приходится разбирать предложенные списки, а им и так живётся, без разборов. А вот найденное пользователем _срочно_ объединить и устранить - это и без регулярок вылезает |
||||||||||
32
СеменовСемен
02.08.22
✎
13:10
|
(31) ну например номер счета найти в строке назначения
|
||||||||||
33
kittystark
02.08.22
✎
13:11
|
(27) когда-то написал загрузку экселевских файлов от поставщиков и покупателей
с привязкой их наименований номенклатуры к своим наименованиям так вот такие задачи "кто во что горазд" - хорошо и быстро решаются регулярками обычным кодом "если Найти() тогда" - просто застрелиться можно |
||||||||||
34
СеменовСемен
02.08.22
✎
13:11
|
(32) конечно регулярки тупо можно заменить посимвольным переборов - ведь они именно так и работают
|
||||||||||
35
bolobol
02.08.22
✎
13:43
|
(32) СтрНайти "№" + СтрНайти " " - решал и решает 100% этих задач
(33) Потому что так не делают, номенклатура привязывается в момент заказа и дальше таких вопросов не возникает. А поиск в электронных накладных идёт по коду, не по наименованию |
||||||||||
36
bolobol
02.08.22
✎
13:51
|
Вспоминается бардак с Номенклатурой, который долго упорядочивали. Посадили человека за этот справочник который чётко сформулировал правила наименований. Он за неделю перебил автомагически все наименования и без регулярок. И ушёл в отпуск...
Вернулся, а в номенклатуре вместо: - светильник потолочный - светильник напольный - светильник настенный ... появились бра, торшер, люстра, шкафная лучина... выгнали нерадивых и ситуация не повторялась |
||||||||||
37
Arbuz
02.08.22
✎
14:57
|
(0)Если будут более-менее использовать в типовых — куда вы денетесь — будете вникать и нахваливать )
Я бы ещё AWK добавил ))) Хотя большинство тут 'тся' и 'ться' не могут осилить. (36) Посмотрел бы я, как ты бы вручную перебил номенклатуру, когда её >> 30к позиций! И сегодня формулировка наименований чёткая, а через 15к позиций ещё более чёткая. Хотя любителей обезьяней работы хватает. Хⱦли думать, надо хⱦярить!© |
||||||||||
38
bolobol
02.08.22
✎
15:07
|
(37) Я не сильно там помогал, а позиций на тот момент было около 120ооо. За неделю. Один человек. С программированием знакомый поверхностно. Выборки и автозамены написал.
|
||||||||||
39
bolobol
02.08.22
✎
15:10
|
(37) ...странно желание смотреть на человека вручную меняющего наименования номенклатуры... подумал я, но понимаю, что за компьютером смотрю как он автоматически что-то делает - с удовольствием) И я как будто занят.. "Компилируется жэ!" ))
|
||||||||||
40
Ryzeman
02.08.22
✎
15:11
|
(38) Я считаю что элементы и переборы коллекции всё ерунда. Зачем тебе структура если можно сделать 50 переменных и передавать их? Что за новомодные выдумки...
Никто не спорит что что угодно можно сделать через посимвольный подбор, а при очень большом желании извращнуться и через запрос с его ПОДОБНО. Но есть инструмент, который придумали более 40 лет назад. Почему, блин, не использовать его? |
||||||||||
41
bolobol
02.08.22
✎
15:14
|
(40) Это не мне вопрос, наверное. У меня у самого вопрос - примеры для использования в 1С нужны. Сам я этот инструмент (сторонний т.е.) использовал для обновлятора типовой с доработками - это реально ускорило поиск в файлах конфы ЗУПа. Но это слишком специфичная ситуация даже для того чтобы делать её вообще на 1С.
|
||||||||||
42
bolobol
02.08.22
✎
15:16
|
(40) Кстати, постоянно жаркие споры о том, что в ЗУП-е набор параметров методов передаётся в структурах... люди кругом плачут... переписывают всё на параметры самого метода. Вот вам и структура зачем, если можно 50 переменных. Только по параметрам метода читабельно что за параметр, а структуру надо наизусть знать
|
||||||||||
43
Ryzeman
02.08.22
✎
15:17
|
(41) Ну, примеры тебе привели. Обработка внешних данных с любых сервисов. Поиск клиентов, номеров телефонов, счетов, названий номенклатур и т.п. Всё, что пользователи могут указывать левой пяткой или всё что в базу притягивается не по строгим маскам
|
||||||||||
44
Ryzeman
02.08.22
✎
15:17
|
Просто ты утверждаешь что тебе достаточно использовать для этого СтрНайти и Если. Ну ок, тебе достаточно. А людям удобнее RegExp
|
||||||||||
45
СеменовСемен
02.08.22
✎
15:18
|
(42) если параметров больше 3 то лучше структура
|
||||||||||
46
bolobol
02.08.22
✎
15:18
|
(43) Тоже - достаточно ограничить пользователя входной маской и проблемы нет. Всяко дешевле чем потом разбираться, почему смс не отправилось
|
||||||||||
47
Ryzeman
02.08.22
✎
15:19
|
(45) Со структурой и масштабировать код проще. Но это был вообще-то сарказм.
(46) Если сервис НЕ твой и ты НИКАК не можешь повлиять на то, что он тебе шлёт? |
||||||||||
48
bolobol
02.08.22
✎
15:20
|
(45) Вот и плачем в ЗУП-е от них... 5-6 модулей приходится прошерстить, чтобы найти полное описание структуры... долго, неудобно, не всегда документировано полностью. Переписываем!
|
||||||||||
49
СеменовСемен
02.08.22
✎
15:20
|
(48) так описание нужно просто написать
|
||||||||||
50
Ryzeman
02.08.22
✎
15:20
|
Это как со СЛУ. Вот конкретно мне нахрен не сдались СЛУ в 1с, вообще до лампочки. А коллега из страховой кайфует - у неё математики море и конкретно СЛУ сильно в кассу пришлось.
|
||||||||||
51
СеменовСемен
02.08.22
✎
15:21
|
А вообще просто нужна жесткая типизация а ля тайпскрипт
|
||||||||||
52
bolobol
02.08.22
✎
15:21
|
(47) Вот-вот! Вот такой пример хочу! Прям до входных данных с примером всей системы и почему так. Мне - интересно! В 1С мы переписываем все такие места - регулярок избегать именно.
|
||||||||||
53
bolobol
02.08.22
✎
15:24
|
(50) Про это новшество тоже интересовался, не понял там про производство и СЛУ, но сложилось стойкое впечатление, что там без этого не обойтись. С регулярками вопрос ближе, но они такие тугие, что всеми силами, тем более - что использовать нужно внешний объект, избавляемся от применения.
|
||||||||||
54
bolobol
02.08.22
✎
15:26
|
Была, кстати, тема у меня о регулярках - там в несколько строк выражение было для поиска какой-то ерунды, но её через Если и СтрНайти - вообще бы жесть писать
|
||||||||||
55
bolobol
02.08.22
✎
15:27
|
Я к тому, чтобы вы понимали, что я не отрицаю их, а необходимость в применении для задач в 1С не видел. Их писать-то правильно сложно, а читать и подправлять потом...
|
||||||||||
56
СеменовСемен
02.08.22
✎
15:34
|
(54) а как найти число в строке через СтрНайти?
|
||||||||||
57
Diversus
02.08.22
✎
15:38
|
(0) Самое интересное, что уже есть ВК, которая умеет это делать и прекрасно работает:
https://github.com/alexkmbk/RegEx1CAddin |
||||||||||
58
kittystark
02.08.22
✎
16:06
|
(57) если мне не изменяет склероз, где-то на ИС было решение через фасеты XDTO ("встроенные" в 1С) - там слегка через одно место, но уже "родное", из коробки, без всяких ВК
|
||||||||||
59
СеменовСемен
02.08.22
✎
16:07
|
(58) там только на сравнение с образцом
|
||||||||||
60
kittystark
02.08.22
✎
16:11
|
(59) ну да, наверное...
RegExp.Replace - наше все, во всяком случае для меня, поэтому видимо посмотрел и не стал применять |
||||||||||
61
kittystark
02.08.22
✎
16:18
|
мне вот другое интересно: этот заявленный функционал можно будет применять в выражениях ресурсов СКД без затыков на безопасный режим?
|
||||||||||
62
lexushka
02.08.22
✎
16:27
|
по уму это в языке запросов надо
|
||||||||||
63
kittystark
02.08.22
✎
16:29
|
(62) мечтаю об этом уже лет 15
имхо не потянут |
||||||||||
64
bolobol
02.08.22
✎
16:31
|
(56) Для й= 1 по Стрдлина(СтрокаСЧислом) Цикл СтрНайти("0123456789", Сред(СтрокаСЧислом, й)); КонецЦикла;
|
||||||||||
65
СеменовСемен
02.08.22
✎
16:48
|
(64) ну те ты практически сам создаешь свой регэксп, а можно взять готовый
|
||||||||||
66
СеменовСемен
02.08.22
✎
16:49
|
(64) твой цикл конечно же не найдет все число, а найдет все числа
|
||||||||||
67
bolobol
02.08.22
✎
16:53
|
(66) Пардон, не вчитался) Но суть понятна, как и код реализующий эту суть - прозрачен и прост. Да и требуется такое в особо извращённых ситуациях. Ну, т.е., я не видел задач где это необходимо делать на потоке
|
||||||||||
68
СеменовСемен
02.08.22
✎
16:54
|
(67) далеко не прозрачен, нужно учитывать пред. значения, где то накапливать результат, до первого ненужного символа
|
||||||||||
69
bolobol
02.08.22
✎
16:55
|
(65) В готовой регулярке будет больше строк и без комментариев не обойтись. Такой код сам себя комментирует... и это не комментарий "тут говнокод")))
|
||||||||||
70
bolobol
02.08.22
✎
16:57
|
(68) Регулярка внутри именно это и делает - посимвольно просматривает строку, выбирая нужное. Оптимизация в регулярках, вплоть, наверное, до деревьев, распараллеливающих поиск - нужна для обработок оооочень большого объёма данных. Точно не номер счёта разыскать в назначении платежа.
|
||||||||||
71
kittystark
02.08.22
✎
17:07
|
(67) "на потоке", из реально сделанного, на вскидку:
- причесать наименования к единому шаблону туеву-хучу карточек номенклатуры, вплоть до "стандартизирования" всяческих разделителей - выдернуть из наименования упаковку(-и), ед.изм., размеры, бренд и т.п. - записать в свойства - перенумератор кода элемента справочника, со своими правилами :) - да, да, мне не стыдно! и еще кучу всяких "выбиралок" |
||||||||||
72
СеменовСемен
02.08.22
✎
17:09
|
(72) а мог бы как человек через цикл и стрнайти сделать )
|
||||||||||
73
kittystark
02.08.22
✎
17:09
|
(71) + для себя вынес одно простое правило - если работаю со строками, и конструкция кода сложнее чем СтрНайти() СтрЗаменить() - мне проще воспользоваться регуляркой
|
||||||||||
74
kittystark
02.08.22
✎
17:10
|
(72) угу, "взмахнула фея палочкой и отвалилась у танка башня..."
из той же оперы |
||||||||||
75
Конструктор1С
02.08.22
✎
17:35
|
(45) если параметров много, то надо думать над реорганизацией кода, а не прятать последствия в структуру
|
||||||||||
76
bolobol
02.08.22
✎
17:48
|
(([^а-яА-ЯёЁa-zA-Z\s\xA0])([\s\xA0]+)([а-яА-ЯёЁa-zA-Z]))|(([^а-яА-ЯёЁa-zA-Z\s\xA0])([\s\xA0]+)([^а-яА-ЯёЁa-zA-Z\s\xA0]))|(([а-яА-ЯёЁa-zA-Z])([\s\xA0]+)([^а-яА-ЯёЁa-zA-Z\s\xA0]))|(([\s\xA0])([\s\xA0]+))
- код убирает пробелы, аналог: СтрНайти(.., Таб, " ");СтрНайти(.., 0160, " ");СтрНайти(.., " ", " "), но не между словами, дабы сохранить "...Останки КАК Останки...". Попробуй - разберись! Писан был только из-за того, что требовалось пройти все тексты ЗУП-а _быстро_. А конструкция сложнее чем просто СтрНайти и СтрЗаменить в части "не между словами". Но только из-за скорости и объёма обработки на регулярной основе сделано на регулярке. В обычной, в штатной работе приложения такую необходимость встретить, похоже, только если очень хочется регулярку прикрутить, когда она даёт меньше кода чем код на 1С. |
||||||||||
77
novichok79
02.08.22
✎
17:48
|
(0) АХАХАХХА, ну прям 1C way == да, но нет.
positive/negative lookahead? name matching groups? НЕ, НЕ СЛЫШАЛИ. а почему нельзя было сделать как везде - регулярка == экземпляр класса и работа идет через нее? 1С считает разрабов 1С инвалидами, неспособными в полноценные регулярки? (11) фи, херня мы в начале строки, дальше идут символы #/база. далее любое количество любых символов (кроме перевода строк) и дальше слово сдохла а че в конце нет $? чтобы точно был конец строки? но мне этого не нужно, ибо в Golang регулярки почти нормальные (нет positive/negative lookahead, из-за того что разработчики либы гарантируют что время выполнения поиска будет O(n)) Мне это не нужно |
||||||||||
78
novichok79
02.08.22
✎
17:54
|
(0) и да, а какую спецификацию регулярок держит сей монстр из сосновых шишек и пластилина?
была уже где-то ВК, которая все это умеет и гораздо лучше. Лёха из интернетов смог, а великая и ужасная 1С нет? чет как-то неудобно даже. (15) regex101.com наше все |
||||||||||
79
bolobol
02.08.22
✎
17:54
|
(75) Даа, даааа... именно так и выглядят поверхностно выдаваемые рекомендации. Красиво выглядят, умно, но не имеют ничего общего с реальностью
|
||||||||||
80
novichok79
02.08.22
✎
17:56
|
(79) понял, принял, милорд - эксперд по выдаче рекомендаций.
хорошо, не спорю. |
||||||||||
81
novichok79
02.08.22
✎
18:02
|
> зачем нужны регулярки?
пфффф, очевидно же: 1) сложная работа со строками, чтобы не пейсать везде циклы с обходом строк и кучей если. за тебя регулярочка строит внутри конечный автомат и делает тоже самое, только без лишей писанины 2) когда надо удалить слово или строку после с несколькими вариантами. 3) когда надо привести строку в какой-либо формат 4) когда надо вырезать слово из скобочек без посимвольного обхода и создания стека скобочек но, кто я такой чтобы здесь что-то доказывать :) > слишком сложна (с) я обычно текстом в комментарии над регуляркой расписываю ожидаемое поведение, беру прям и копирую с regex101.com -> translate.google.com -> ПРОФИТ |
||||||||||
82
bolobol
02.08.22
✎
18:08
|
НовыйЭлемент= РазместитьНовыйЭлементНаФорме(Имя, Заголовок, ТипЭлемента, ПутьКДанным, ПередЭлементом);
Пять параметров, хотя, казалось бы, из обязательных лишь Имя и ТипЭлемента - два параметра лучше чем пять, затем можно НовыйЭлемент. - и Заголовок указать и Путь к данным и разместить в нужное место на форме и прочие параметры настроить... только нужна знать как называются эти параметры. Например, что там есть "РастягиватьПоГоризонтали" и "АвтоРазмерПоГоризонтали", а можно добавить шестой параметр в функцию "Растягивать", и в функции это всё учесть и потом не задаваться этим вопросом. Ни как называется, ни что эти параметры в паре работают. И так далее - функция разрослась до 9-ти параметров, которые покрывают уже несколько лет все хотелки. И ничего помнить не приходится! Всё написано в самой функцией названием параметров, и подсказка работает в конфигураторе из коробки |
||||||||||
83
bolobol
02.08.22
✎
18:14
|
(81) Это не реальная задача, это что-то промо-рекламное...
Вот, например, реальная задача: пользователь выбирает галками показатели, которые он хочет видеть в отчёте, группировки. И нужно собрать текст запроса, пихнуть его в СКД.. да тоже.. чем регулярки здесь помогут? Искать ВЫБРАТЬ / ПОМЕСТИТЬ / ГДЕ... чтобы не попасть в подзапрос какой? Сделано через СтрНайти, СтрЗаменить. Ибо - не представляю, чем тут помогут регулярки. Запутать - точно запутают. Там сходу не разберёшь где что править |
||||||||||
84
Кирпич
02.08.22
✎
20:10
|
(83) Так никто не заставляет всё делать регулярками. Как удобно, так и делай. А что добавили, правильно. Надо было еще в 7.7 добавлять. Инструмент полезный.
|
||||||||||
88
Timon1405
02.08.22
✎
22:12
|
|||||||||||
89
novichok79
03.08.22
✎
00:03
|
(83) промо-рекламное, кек. откройте для себя мир не1сного IT, там такое сплошь и рядом.
|
||||||||||
90
novichok79
03.08.22
✎
00:04
|
(88) ну это прям как-то слишком сложно, да и не вставить картинку в исходники.
|
||||||||||
91
novichok79
03.08.22
✎
00:08
|
(83) жесть какая-то, а чё отбор СКД на форму уже не выводится или теперь не модно?
звучит как какой-то жуткий костыль. вам там пользователь накрутит так что база пригляжет, если нет контроля галочек. если уж надо сделать анализ текста запроса, то чем не угодила схема запроса? и отборы на формах и анализ через схему запроса юзал, пока работал в 1с. ничего сложного. |
||||||||||
92
novichok79
03.08.22
✎
00:09
|
(83) анализ текста запроса регулярками - путь инвалида, имхо.
|
||||||||||
93
СеменовСемен
03.08.22
✎
08:25
|
(83) у запроса есть объектная модель, никакие стрзаменить не нужны
|
||||||||||
94
vbus
03.08.22
✎
08:53
|
Народная мудрость:
Некоторые люди, сталкиваясь с проблемой, думают: «Ага, я умный, я решу её с помощью регулярных выражений». Теперь у них две проблемы. |
||||||||||
95
bolobol
03.08.22
✎
11:11
|
(93) Не осилил, если честно. Собрать через строки - много проще..
|
||||||||||
96
AXZ
03.08.22
✎
11:18
|
(4) Поддержка ВР - не выйдешь из вирта пока не укажешь 100500 заданных поставщиком реквизитов)))
|
||||||||||
97
assasu
03.08.22
✎
11:22
|
(11) книжка Бена Форта читается очень легко
|
||||||||||
98
Гений 1С
гуру
09.08.22
✎
13:43
|
Решил, раз такая пьянка, поделиться наиболее востребованной функцией вместо регулярок:
Функция НайтиШаблон(Строка, МаркерНачала, МаркерКонца) Экспорт Р = Новый Структура("Найден", ложь); Поз = Найти(Строка, МаркерНачала); Если Поз = 0 Тогда Возврат Р; КонецЕсли; Начало = Лев(Строка, Поз - 1); Хвост = Сред(Строка, Поз + СтрДлина(МаркерНачала)); Поз = Найти(Хвост, МаркерКонца); Если Поз = 0 Тогда Возврат Р; КонецЕсли; Конец = Сред(Хвост, Поз + СтрДлина(МаркерКонца)); Середина = Лев(Хвост, Поз - 1); Р.Вставить("Начало", Начало); Р.Вставить("Середина", Середина); Р.Вставить("Конец", Конец); Р.Найден = истина; Возврат Р; КонецФункции |
||||||||||
99
TormozIT
гуру
09.08.22
✎
13:44
|
Конечно 2. Подгруппы - наше все.
Останусь на прежних механизмах RegExp |
||||||||||
100
СеменовСемен
09.08.22
✎
14:01
|
(99) а кто сказал что не будет подгрупп?
|
||||||||||
101
MM
09.08.22
✎
14:51
|
(98) А если искомое переменной длины и ограничено цифрами или ограниченным набором символов, идущих в определённом порядке?
(100) На партнёрском сказали. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |