Вход | Регистрация


VBScript.RegExp поиск в строке последовательности цифр

VBScript.RegExp поиск в строке последовательности цифр
Я
   Надмозг
 
20.10.17 - 18:20
Хочу найти в строке последовательность цифр, длину ее не знаю
Для любой цифры используется шаблон [0-9], для двух [0-9][0-9]
А если я не знаю, сколько их?
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.Pattern = "[0-9]";// Что тут написать?


Копаюсь тут, пока не понял https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp

Если поставить звездочку [0-9]*, то, по-моему, это не то.
 
 
   lodger
 
1 - 20.10.17 - 18:41
вот довольно полная шпаргалка.
http://www.exlab.net/files/tools/sheets/regexp/regexp.png
там есть пример интервала чисел от 1 до 50.
имхо, по аналогии можно и запилить...
   Филиал-msk
 
2 - 20.10.17 - 18:48
\d+
   Филиал-msk
 
3 - 20.10.17 - 18:48
   Надмозг
 
4 - 20.10.17 - 18:49
(2) так разве не будут искаться повторы предыдущих значений?
Ну допустим, 11 или 1111 найдется, а 1234 нет
   Надмозг
 
5 - 20.10.17 - 18:52
(1) там, по-моему, слишком наворочено, плюс есть ограничение по длине. Я это видел
Вроде, вот так без ограничения по длине [0-9]\{1,\}
но это не точно)

Просто мне затруднительно тестить всё в данный момент, нужен готовый вариант или несколько
   kittystark
 
6 - 20.10.17 - 18:52
(4) в (2) верно сказано, т.к.: \d - любая цифра,  + - один и более раз
   Надмозг
 
7 - 20.10.17 - 18:53
(3) это хорошо, попробую
   kittystark
 
8 - 20.10.17 - 18:53
(5) слеши лишние
   Надмозг
 
9 - 20.10.17 - 18:55
(6) по описалову так
    
Соответствует предыдущему символу повторенному 1 или более раз. Эквивалентно {1,}.

Например, /a+/ соответствует 'a' в "candy" и всем символам 'a' в "caaaaaaandy".

Я вот и не пойму, предыдущий символ это в конкретной строке, или символ шаблона.
   Надмозг
 
10 - 20.10.17 - 18:55
(8) окей
 
 Рекламное место пустует
   kittystark
 
11 - 20.10.17 - 18:59
если доку почитать внимательно, то 
[0-9] это \d
{1,} это +
   Надмозг
 
12 - 20.10.17 - 19:00
(11) Да, все,
\d+ работает, как и [0-9]+

всем спасибо
   Надмозг
 
13 - 26.10.17 - 14:53
Поднимаю тему...

Ищу в строке последовательность ХХ-ХХХХ
Х - цифра.  После черточки может быть от 1 до 4 цифр

Написал такое 
\d{2}-\d{1,4}

Но нужно чтобы последовательность ХХХ-ХХХХ уже не попадала, т.е. не обрезало, а именно ничего не находилось
Добавил в начале перед выражением

(\D|^)
Это означает не цифра или начало строки 

Но в таком случае если будет такой текст
абвгд12-123

то попадет д12-123, а мне надо 12-123, т.е. чтобы условие пред строкой поиска проверялось, но значение не попадало

Как правильно написать?
   lodger
 
14 - 26.10.17 - 15:04
(13) вызови регэксп второй раз...
   Надмозг
 
15 - 26.10.17 - 15:09
(14) Слишком топорно
Искал искал, потом написал сюда, и внезапно нашел

(?<!\d) - поставить перед выражением, будет смотреть перед найденной строкой, если не цифра, то вернет строку, а значение перед ней не вернет
В итоге так выглядит
(?<!\d)\d{2}-\d{1,4}

(Для потомков: в теме две подзадачи по рег выражениям последний, последний пост не относится напрямую к первому)
   RomaH
 
16 - 26.10.17 - 15:18
(13) - есть ведь группы
(\D|^)(\d{2}-\d{1,4})

группа 2 дает правильный результат
   Надмозг
 
17 - 26.10.17 - 15:21
(16) да, через вторую группу тоже можно
   Надмозг
 
18 - 27.10.17 - 12:09
(16) (15) оказалось, это не сработает (?<!\d) VBScript это не понимает, поэтому сделал через группы, вытаскивать надо из SubMatches
   Tateossian
 
19 - 27.10.17 - 12:26
Уважаю одинэсников, которые могут в регэксп:)
   mrDSide
 
20 - 27.10.17 - 12:33
(13) \b\d{2}\-\d{1,4}\b

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует