Автор Тема: Получение определенной даты из текста  (Прочитано 2225 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Доброго времени суток любители AutoIt.

Возникла необходимость а знаний не хватает!
Как получить кусок даты из такого куска текста
from mx.xxx.kz ([212.154.132.67] verified)
  by mx.xxxxx.kz (CommuniGate Pro SMTP 5.3.13)
  with ESMTP id 68471744 for [email protected]; Wed, 07 May 2014 10:11:03 +0600
Дату "07 May 2014 10:11:03" и преобразовать в "07.05.2014 10:11:03"
или хотя бы получить!
И за одно и из такой строки тож
Wed, 07 May 2014 09:55:39 +0600
и еще такая запись "07 May 2014 10:11:03" может находится как в начале текста так и в конце!

Заранее благодарю!
« Последнее редактирование: Июнь 10, 2014, 15:43:39 от Talany »
In God We Trust =)
или
In AutoIt We Trust...

Русское сообщество AutoIt

Получение определенной даты из текста
« Отправлен: Июнь 10, 2014, 15:10:05 »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Получение определенной даты из текста
« Ответ #1, Отправлен: Июнь 10, 2014, 15:27:33 »
Talany,
ПредупреждениеЗа нарушение правил форума (пункт В.11):
Цитировать
Любые отрывки AutoIt кода необходимо заключать в тег [autoit] (подробнее), а обычный код соответственно в тег [code] (подробнее). Также большие выдержки текста помещайте под тег [spoiler] (подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.

Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Re: Получение определенной даты из текста
« Ответ #2, Отправлен: Июнь 10, 2014, 15:44:06 »
Talany,
ПредупреждениеЗа нарушение правил форума (пункт В.11):
Цитировать
Любые отрывки AutoIt кода необходимо заключать в тег [autoit] (подробнее), а обычный код соответственно в тег [code] (подробнее). Также большие выдержки текста помещайте под тег [spoiler] (подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
Благодарю, исправил

Оффлайн C2H5OH [?]

  • Знаю я тут одно место с офигенными циркулями...
  • AutoIt Гуру
  • *****
  • Сообщений: 1473
  • Репутация: 332
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получение определенной даты из текста
« Ответ #3, Отправлен: Июнь 10, 2014, 15:45:38 »
Код: AutoIt [Выделить]
#include <Array.au3>

$text = ClipGet()
$pattern = '(?s).*?(\d{2}\s\w{3}\s\d{4}\s\d{2}:\d{2}:\d{2})'
$aRes = StringRegExp($text, $pattern, 3)
_arraydisplay($aRes)

Рано или поздно все станет понятно, все станет на свои места и выстроится в единую красивую схему, как кружева. Станет понятно, зачем все было нужно, потому что все будет правильно.

Русское сообщество AutoIt

Re: Получение определенной даты из текста
« Ответ #3 Отправлен: Июнь 10, 2014, 15:45:38 »

Помечен как лучший ответ пользователем Talany Отправлен Июнь 10, 2014, 17:04:05

Оффлайн Z_Lenar [?]

  • Продвинутый
  • ***
  • Сообщений: 209
  • Репутация: 52
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получение определенной даты из текста
« Ответ #4, Отправлен: Июнь 10, 2014, 16:18:49 »
Код: AutoIt [Выделить]
$sText = "from mx.xxx.kz ([212.154.132.67] verified)" & @CRLF _
    & "by mx.xxxxx.kz (CommuniGate Pro SMTP 5.3.13)" & @CRLF _
    & "with ESMTP id 68471744 for [email protected]; Wed, 07 Dec 2014 10:11:03 +0600"

$sText = StringRegExpReplace($sText, "(?s)^.*?(\d{2}) (\w{3,}) (\d{4}) (\d{2}:\d{2}:\d{2}).*$", "\1.\2.\3 \4")
$aTmp = StringRegExp($sText, "(?i)(Ja)|(F)|(Mar)|(Ap)|(May)|(Jun)|(Jul)|(Au)|(S)|(O)|(N)|(D)", 1)
$sText = StringRegExpReplace($sText, "(?i)[a-z]+", StringFormat("%02d", UBound($aTmp)))
ConsoleWrite($sText & @CRLF)


Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Re: Получение определенной даты из текста
« Ответ #5, Отправлен: Июнь 10, 2014, 17:03:53 »
Благодарю всех!

Проблема решена!  :rofl:

Русское сообщество AutoIt

Re: Получение определенной даты из текста
« Ответ #5 Отправлен: Июнь 10, 2014, 17:03:53 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
2769 Просмотров
Последний ответ Апрель 07, 2012, 06:09:46
от CreatoR
5 Ответов
2759 Просмотров
Последний ответ Октябрь 18, 2013, 17:21:25
от sngr
0 Ответов
982 Просмотров
Последний ответ Январь 17, 2014, 14:43:22
от Studetthe
4 Ответов
1621 Просмотров
Последний ответ Ноябрь 12, 2014, 15:50:01
от Jotun
1 Ответов
1777 Просмотров
Последний ответ Август 17, 2014, 09:26:30
от WSWR
0 Ответов
1294 Просмотров
Последний ответ Февраль 16, 2015, 17:30:38
от itskun
2 Ответов
6072 Просмотров
Последний ответ Август 25, 2015, 13:54:38
от Yashied
1 Ответов
739 Просмотров
Последний ответ Октябрь 11, 2015, 04:18:50
от joiner
4 Ответов
506 Просмотров
Последний ответ Август 16, 2017, 10:00:08
от Alofa
16 Ответов
681 Просмотров
Последний ответ Апрель 18, 2018, 11:28:35
от Serega1383