Регулярные выражения
-
Подскажите как сделать, практически все перепробовал не получается.
Есть исходный текст
"@besenok пользователю 39 лет, дата его рождения 01.01.1900 года"из этого текста нужно взять только количество лет. Пробовал создавать регулярки, на сайте в онлайн режиме все получается, а когда вставляю в регулярные выражения в BAS в лог выдает пустое сообщение. Помогите разобраться. Заранее благодарен.
-
\s(\d+)\s
-
бесполезно, все равно пусто
-
Кол-во лет считаете с учетом дня рождения? Если нет, то одного года хватит.
(\d{4,4})
Либо для д/м/г
(\d{2,2}.\d{2,2}.\d{4,4})
-
@besenok said in Регулярные выражения:
бесполезно, все равно пусто
Тогда подозреваю, что дело не в регулярке. Что-то либо не так на этапе передачи переменной в регулярное выражение, либо перед выводом в лог. Проверяйте названия переменных, действительно ли передается правильная исходная строка, и записывается ли результат в нужную переменную.
-
сам текст когда получаю он в двух строках пишется, там где количество лет
"@besenok пользователю:
39 лет дата его рождения 01.01.1900 года"
Я применяю вот такую регулярку
":[\w\W] ([\s\S]+)\ лет\ [\s\S]"
но вытягивает он его с энтером, определил таким образом сохраняю далее в файлик тектовый а он мне выдает 39 с новой строки
вот так, как энтер этот убрать?
-
А если вообще такую регулярку написать: \d+
Достанет самое первое число из строки. Если не поможет без проекта не смогу подсказать.
-
А как вообще можно обозначить ентер в BAS
-
@besenok новая строка это
\n
у тебя парсится вместе с новой строкой, потому что используешь это[\w\W]
один из вариантов:
\n(\d+)\ лет
обязательно указать, что тебе нужна первая группа, тогда получишь только цифру.
-
Учитывайте, что, скорее всего, возможны варианты:
21 год
22 года
25 лет
-
Спасибо за помощь, получилось с \n