Имя: Пароль:
1C
1С v8
Помогите с регулярным выражением
0 location
 
naïve
03.11.22
17:49
Добрый день. Подскажите написал такую конструкцию для компоненты RegEx, не сильно шибко разбираюсь как их правильно писать.
(\S{2}\d{2}-\d{6})
они нужны для отлова таких кодов
АА00-000001
и вроде как работает, хотя и 0000-000001 тоже отлавливает.
а вот если такая конструкция
АБА00-000001 то получается БА00-000001
АА00-0001010 то получается АА00-000101
а такие вообще не должно брать.
Помогите как правильно написать ее.
2 lodger
 
03.11.22
18:01
(0) ты в регу должен добавить якори, чтобы рега понимала, что "слово" началось и закончилось.
иначе она всё правильно делает - нашла последовательность символов по маске
3 lodger
 
03.11.22
18:16
если вставить флаг \b в конце маски, то конец номера ловится нормально
https://regex101.com/r/EqeClr/1
а в начале не хочет...
4 location
 
naïve
03.11.22
18:26
(3) по вашему примеру да, в конце обрубает, спасибо. а что же в начале еще дописать?
5 kittystark
 
03.11.22
20:06
(0) \S{2} - это два непробельных символа, поэтому "и 0000-000001 тоже отлавливает"
если вначале нужны строго не 2 цифры после пробела - попробуй (\w{2}\d{2}-\d{6})
для кириллицы возможно вместо \w потребуется еще и [а-яА-Я]

для полноты постановки вопроса - нужны примеры реальных строк, т.е. мне важно есть ли слева / справа что-либо или нет
типа: "бла-бла АБА00-000001 тук-тук"
или чистый "АБА00-000001"

вообщем жду примеров - несколько как надо и несколько как НЕ надо, с учетом вышесказанного
6 Кирпич
 
03.11.22
21:37
проходили же недавно

(?<!(\S))\D{2}\d{2}-\d{6}\b
7 Кирпич
 
03.11.22
21:39
(?<!\S)\D{2}\d{2}-\d{6}(?=\s)
8 Кирпич
 
03.11.22
21:42
вот шпаргалка. я там всегда смотрю.
https://ru.wikipedia.org/wiki/Регулярные_выражения
9 kittystark
 
04.11.22
08:54
(8) вот пользуясь случаем, хочу спросить:
эти lookahead - lookbehind в 1С как использовать?

я пока только VBScript.RegExp работал
10 Кирпич
 
04.11.22
11:36
(8)так в 1с вроде нету такого