Помогите выдернуть дату и время

ZULI

Client
Регистрация
09.09.2020
Сообщения
423
Благодарностей
165
Баллы
43
Привет!

выдергиваю со страницы вот такой код. кусок _v-78c9c52b= генерируется динамически.

Код:
<a href="" class="link-warning" _v-78c9c52b="">
                Aug 29, 2021
                <span class="d-table-cell d-lg-block" _v-78c9c52b=""></span>
                17:17 MSK
                <i class="fa fa-exclamation-circle" aria-hidden="true" _v-78c9c52b=""></i>
              </a>
Нужно из этого выдернуть Aug 29, 2021 и 17:17 MSK и сложить в переменную (можно в две).

Я так понимаю просто два кубика с регулярками и разобрать, но я не силен в регулярках и прошу вашей помощи.

P.S. в коде пробелы до и после даты и времени, хорошо бы чистые данные получить.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 495
Благодарностей
1 304
Баллы
113
Привет!

выдергиваю со страницы вот такой код. кусок _v-78c9c52b= генерируется динамически.

Код:
<a href="" class="link-warning" _v-78c9c52b="">
                Aug 29, 2021
                <span class="d-table-cell d-lg-block" _v-78c9c52b=""></span>
                17:17 MSK
                <i class="fa fa-exclamation-circle" aria-hidden="true" _v-78c9c52b=""></i>
              </a>
Нужно из этого выдернуть Aug 29, 2021 и 17:17 MSK и сложить в переменную (можно в две).

Я так понимаю просто два кубика с регулярками и разобрать, но я не силен в регулярках и прошу вашей помощи.

P.S. в коде пробелы до и после даты и времени, хорошо бы чистые данные получить.
81866

Xpath дорога:
Код:
//a[@href and @class="link-warning"]
Аттрибут:
Код:
innertext
 
  • Спасибо
Реакции: ZULI

volody00

Client
Регистрация
06.09.2016
Сообщения
896
Благодарностей
917
Баллы
93
кубик данные -> обработка текста -> Regex

Я не мастер регулярок, но попробуй (может кто получше предложит)

[A-Z][a-z]{2,} \d\d?, 2021 - под первую

\d\d?:\d\d? MSK - под вторую
 
  • Спасибо
Реакции: ZULI

ZULI

Client
Регистрация
09.09.2020
Сообщения
423
Благодарностей
165
Баллы
43
Спасибо попробую оба варианта.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
Попробуйте и третий вариант)
C#:
string text = project.Variables["text"].Value;//переменная с текстом
return string.Join(" ", Regex.Replace(text, @"<.*?>", "")
    .Split(new[]{"\n"}, StringSplitOptions.RemoveEmptyEntries)
        .Select(x=>x.Trim())
            .Where(x=>!string.IsNullOrWhiteSpace(x)));
 

ZULI

Client
Регистрация
09.09.2020
Сообщения
423
Благодарностей
165
Баллы
43
@Alexmd вообще шикарный код, спасибо!

@Gunjubasik тоже хорош, спасибо!

А еще добрые друзья, подскажите если знаете полученную дату и время Aug 29, 2021 17:17 как перевести в unixtime? Или может другой вариант для проверки прошло ли 25 дней с момента этой даты.

Смастерил такую штуку

Код:
var oldDate = DateTime.Parse(project.Variables["lastUpdate"].Value, System.Globalization.CultureInfo.CreateSpecificCulture("en-US"));
oldDate = oldDate.AddDays(1);
string formattedDate = oldDate.ToString("MMM dd, yyyy HH:mm");
но почему-то культура US не применяется и дата выходит авг 30, 2021 17:17, а нужно Aug 30, 2021 17:17

смысл в том чтобы получить дату, прибавить нужное кол-во дней, взять текущую дату и сравнить с этой. Конечно можно не морочиться и сконвертировать дату в другой формат... но интересно почему культура не применяется и особенно интересно услышать ваши варианты, может есть проще способы сделать проверку.
 
Последнее редактирование:

Carty

Client
Регистрация
16.06.2021
Сообщения
39
Благодарностей
68
Баллы
18
но почему-то культура US не применяется и дата выходит авг 30, 2021 17:17, а нужно Aug 30, 2021 17:17
C#:
string formattedDate = oldDate.ToString("MMM dd, yyyy HH:mm", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
 
  • Спасибо
Реакции: ZULI

Carty

Client
Регистрация
16.06.2021
Сообщения
39
Благодарностей
68
Баллы
18
А еще добрые друзья, подскажите если знаете полученную дату и время Aug 29, 2021 17:17 как перевести в unixtime? Или может другой вариант для проверки прошло ли 25 дней с момента этой даты.
C#:
var lastUpdate = DateTime.Parse("Aug 5, 2021 17:17");

if(DateTime.Now - lastUpdate >= TimeSpan.FromDays(25))
{
    // Прошло 25 дней
}
else
{
    // Не прошло
}
 
  • Спасибо
Реакции: ZULI

ZULI

Client
Регистрация
09.09.2020
Сообщения
423
Благодарностей
165
Баллы
43
@Carty красавчик! Спасибо большое, так лучше чем городить то что я нагородил :-)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)