Помогите с регулярным выражением для RegEx

1. G_115084183032554088908 18.10.22 14:19 Сейчас в теме
Нужно чтобы брало только 6 или только 10 цифр из текста, но при этом не было никаких доп. букв впереди. Только спец символы, например, такие должны попасть:

#009931
№009931
009931

при этом должно быть числа без спец символом №#

А вот такие нет:

a009931
b009931
Написал что-то похожее, берет только 6-значные числа, но все:

(?<!\d)\d{6}(?!\d)
Что еще дописать?
эта конструкция работает, там где можно проверить регулярки, а вот в 1с она не хочет работать, поэтому не знаю что написать.
Помогите!
По теме из базы знаний
Найденные решения
8. spacecraft 18.10.22 18:29 Сейчас в теме
(6) в качестве продолжения:
ВхСтрока = "qwe #009931 a109931 \< 209931qq №#0123456789";
Паттерн = "\b\W?(\d{10}|\d{6})(?!\d)";

Рег = Новый("AddIn.Component.RegEx");  
Рег.ВсеСовпадения = Истина;

Рег.НайтиСовпадения(ВхСтрока, Паттерн, Истина);  

Пока Рег.Следующий() Цикл  
    Сообщить(Рег.ТекущееЗначение);
КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. spacecraft 18.10.22 17:53 Сейчас в теме
(1) так, набросок:
\b\W?(\d{10}|\d{6})(?!\d)
8. spacecraft 18.10.22 18:29 Сейчас в теме
(6) в качестве продолжения:
ВхСтрока = "qwe #009931 a109931 \< 209931qq №#0123456789";
Паттерн = "\b\W?(\d{10}|\d{6})(?!\d)";

Рег = Новый("AddIn.Component.RegEx");  
Рег.ВсеСовпадения = Истина;

Рег.НайтиСовпадения(ВхСтрока, Паттерн, Истина);  

Пока Рег.Следующий() Цикл  
    Сообщить(Рег.ТекущееЗначение);
КонецЦикла;
Показать
9. G_115084183032554088908 19.10.22 12:04 Сейчас в теме
(8)
\b\W?(\d{10}|\d{6})(?!\d)

например для #213123# выдает список,
#213123
213123
10. spacecraft 19.10.22 12:45 Сейчас в теме
(9)
например для #213123# выдает список,

Просто шаблон в свой код подставили, или мой код использовали?
У меня нормально выводит:
213123
2. antz 18.10.22 14:28 Сейчас в теме
re = Новый COMОбъект("VBScript.RegExp");
re.Pattern = "(?<!\d)\d{6}(?!\d)";
Matches = re.Execute(СтрокаПоиска);
Если Matches.Count <> 0 Тогда
    Для сч = 0 по Matches.Count - 1 Цикл
        Сообщить(Matches.Item(сч).Value)
    КонецЦикла;
КонецЕсли;
Показать
3. G_115084183032554088908 18.10.22 14:53 Сейчас в теме
(2) вот такая конструкция не работает
Рег = Новый("AddIn.Component.RegEx");
		Рег.ВсеСовпадения = Истина;
		Рег.ИгнорироватьРегистр = Истина;

                Рег.НайтиСовпадения(Текст, Шаблон, Истина);
		Пока Рег.Следующий() Цикл
			Для С = 0 По Рег.КоличествоВложенныхГрупп() - 1 Цикл
				Значение = Рег.ПолучитьПодгруппу(С);
				Если Не ПустаяСтрока(Значение) Тогда
					мРезультат.Добавить(Значение);
				КонецЕсли;
			КонецЦикла;
		КонецЦикла;
Показать
7. antz 18.10.22 18:20 Сейчас в теме
4. Dr.HiHi 3 18.10.22 15:30 Сейчас в теме
можно еще посимвольно перебирать
или какую-то фигню с разложением строки на массив, типа СтрРазделить(какая-тострока, "0123456789")
5. G_115084183032554088908 18.10.22 16:58 Сейчас в теме
(4) очень много условий все перебирать, регулярка сразу может.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот