#0
by Надмозг
Хочу найти в строке последовательность цифр, длину ее не знаю Для любой цифры используется шаблон [0-9], для двух [0-9][0-9] А если я не знаю, сколько их? RegExp = Новый COMОбъект("VBScript.RegExp"); RegExp.Pattern = "[0-9]"; // Что тут написать? Копаюсь тут, пока не понял Если поставить звездочку [0-9]*, то, по-моему, это не то.
#1
by lodger
вот довольно полная шпаргалка. там есть пример интервала чисел от 1 до 50. имхо, по аналогии можно и запилить...
#4
by Надмозг
так разве не будут искаться повторы предыдущих значений? Ну допустим, 11 или 1111 найдется, а 1234 нет
#5
by Надмозг
там, по-моему, слишком наворочено, плюс есть ограничение по длине. Я это видел Вроде, вот так без ограничения по длине [0-9]{1,} но это не точно) Просто мне затруднительно тестить всё в данный момент, нужен готовый вариант или несколько
#9
by Надмозг
по описалову так Соответствует предыдущему символу повторенному 1 или более раз. Эквивалентно {1,}. Например, /a+/ соответствует 'a' в "candy" и всем символам 'a' в "caaaaaaandy". Я вот и не пойму, предыдущий символ это в конкретной строке, или символ шаблона.
#13
by Надмозг
Поднимаю тему... Ищу в строке последовательность ХХ-ХХХХ Х - цифра. После черточки может быть от 1 до 4 цифр Написал такое d{2}-d{1,4} Но нужно чтобы последовательность ХХХ-ХХХХ уже не попадала, т.е. не обрезало, а именно ничего не находилось Добавил в начале перед выражением (D|^) Это означает не цифра или начало строки Но в таком случае если будет такой текст абвгд12-123 то попадет д12-123, а мне надо 12-123, т.е. чтобы условие пред строкой поиска проверялось, но значение не попадало Как правильно написать?
#15
by Надмозг
Слишком топорно Искал искал, потом написал сюда, и внезапно нашел (?<!d) - поставить перед выражением, будет смотреть перед найденной строкой, если не цифра, то вернет строку, а значение перед ней не вернет В итоге так выглядит (?<!d)d{2}-d{1,4} (Для потомков: в теме две подзадачи по рег выражениям последний, последний пост не относится напрямую к первому)
#18
by Надмозг
оказалось, это не сработает (?<!d) VBScript это не понимает, поэтому сделал через группы, вытаскивать надо из SubMatches
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Не работает CreateObject("VBScript.RegExp") из VB Script
- По умолчанию при нажатии Ctrl-F поиск настроен на поиск по текущей колонке
- VBScript и реестр
- Работа с VBscript из 1С 7.7 (проблема при компиляции скрипта VBscript)
- VBScript.RegExp
- Порезать строку на части многосимвольным разделителем с VBScript.RegExp
- Поиск в УФ как програмно отключить поиск?
- 1С:Предприятие 8.1 УТ 10.3 Как Поиск по штрихкоду поменять на поиск по коду?
В этой группе 1С
- добавить ид (номер)в регистр сведений.
- Как программно заполнить поле динамического списка?
- Поломалась (или поломали) интернет-поддержку в 1С:БП 3
- Отчет баланс. Методика проверки.
- 1С 8 НУФ Метод объекта не обнаружено
- Мобильная платформа 1С, удаление помеченных объектов
- Отладка внешней печатной формы
- 1C ERP 2 Оформление таможенной декларации на импорт на товар произведенный в России?
- URI пространства имен веб сервиса
- Digest аутентификация в 1с8.3
- 1С КА 2.2 Помогите настроить ограничение доступа на уровне записей
- УТ (11.3.4.103) Предварительный расчет себестоимости
- Пустой счет учета в "Расходах при УСН" по зарплате
- Агрегаты в 1С
- v8.3 Бухгалтерия 3.0. В печатной форме не отображается значок редактирования таблицы
- Перенос номенклатуры c доп реквизитами в УТ 11.3 из Excel
- БП 3 - групповое перезаполнение реквизитов контрагентов по ИНН
- Как свернуть таблицу значений, что бы не преобразовывало в числа (склеило 2 строки ТЗ)?
- Python. Не показывает картинку
- Как на С++ сделать переменную любого типа?