Помогите с регулярным выражением для RegEx
Нужно чтобы брало только 6 или только 10 цифр из текста, но при этом не было никаких доп. букв впереди. Только спец символы, например, такие должны попасть:
#009931
№009931
009931
при этом должно быть числа без спец символом №#
А вот такие нет:
a009931
b009931
Написал что-то похожее, берет только 6-значные числа, но все:
(?<!\d)\d{6}(?!\d)
Что еще дописать?
эта конструкция работает, там где можно проверить регулярки, а вот в 1с она не хочет работать, поэтому не знаю что написать.
Помогите!
#009931
№009931
009931
при этом должно быть числа без спец символом №#
А вот такие нет:
a009931
b009931
Написал что-то похожее, берет только 6-значные числа, но все:
(?<!\d)\d{6}(?!\d)
Что еще дописать?
эта конструкция работает, там где можно проверить регулярки, а вот в 1с она не хочет работать, поэтому не знаю что написать.
Помогите!
По теме из базы знаний
Найденные решения
(6) в качестве продолжения:
ВхСтрока = "qwe #009931 a109931 \< 209931qq №#0123456789";
Паттерн = "\b\W?(\d{10}|\d{6})(?!\d)";
Рег = Новый("AddIn.Component.RegEx");
Рег.ВсеСовпадения = Истина;
Рег.НайтиСовпадения(ВхСтрока, Паттерн, Истина);
Пока Рег.Следующий() Цикл
Сообщить(Рег.ТекущееЗначение);
КонецЦикла;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6) в качестве продолжения:
ВхСтрока = "qwe #009931 a109931 \< 209931qq №#0123456789";
Паттерн = "\b\W?(\d{10}|\d{6})(?!\d)";
Рег = Новый("AddIn.Component.RegEx");
Рег.ВсеСовпадения = Истина;
Рег.НайтиСовпадения(ВхСтрока, Паттерн, Истина);
Пока Рег.Следующий() Цикл
Сообщить(Рег.ТекущееЗначение);
КонецЦикла;
Показатьre = Новый COMОбъект("VBScript.RegExp");
re.Pattern = "(?<!\d)\d{6}(?!\d)";
Matches = re.Execute(СтрокаПоиска);
Если Matches.Count <> 0 Тогда
Для сч = 0 по Matches.Count - 1 Цикл
Сообщить(Matches.Item(сч).Value)
КонецЦикла;
КонецЕсли;
Показать
(2) вот такая конструкция не работает
Рег = Новый("AddIn.Component.RegEx");
Рег.ВсеСовпадения = Истина;
Рег.ИгнорироватьРегистр = Истина;
Рег.НайтиСовпадения(Текст, Шаблон, Истина);
Пока Рег.Следующий() Цикл
Для С = 0 По Рег.КоличествоВложенныхГрупп() - 1 Цикл
Значение = Рег.ПолучитьПодгруппу(С);
Если Не ПустаяСтрока(Значение) Тогда
мРезультат.Добавить(Значение);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот