Регулярные выражения



  • Подскажите как сделать, практически все перепробовал не получается.
    Есть исходный текст
    "@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


Log in to reply
 

  • 5
  • 4
  • 20
  • 4
  • 4
  • 4
  • 10
  • 2