Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Как вытащить эти данные из строки?

Всем привет! Есть строка текста: Размещено сегодня в 14:15. Редактировать, закрыть, поднять объявление.
Необходимо:
1. Вытащить слово 'сегодня', либо дату, которая будет вместо слова, в формате дд.мм.гггг.
2. Вытащить от туда 2 цифры до ':' и 2 после.
Есть у кого мысли, как правильно составить регулярное выражение, что выполнить эту задачу? Спасибо!
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
miraage
@miraage
Старый прогер
$strings = [
    'Размещено сегодня в 14:15. Редактировать, закрыть, поднять объявление',
    'Размещено 29.12.1989 в 14:15. Редактировать, закрыть, поднять объявление'
];

$re = '/(\d{2}\.\d{2}\.\d{4}|[а-я]+) в (\d{2}:\d{2})/iu';

foreach ($strings as $string) {
    if (preg_match($re, $string, $m)) {
        var_dump($m);
    }
}


array(3) {
  [0]=>
  string(23) "сегодня в 14:15"
  [1]=>
  string(14) "сегодня"
  [2]=>
  string(5) "14:15"
}
array(3) {
  [0]=>
  string(19) "29.12.1989 в 14:15"
  [1]=>
  string(10) "29.12.1989"
  [2]=>
  string(5) "14:15"
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы