2010-05-02 5 views
1

У меня есть строка, как dhgsf20101211124422asddas. Эта строка содержит дату в yyyymmddhhmmss formate. Как получить эту дату из длинной строки, как указано выше. Заранее заблаговременноИзвлечение даты из большой строки

+3

Какой язык вы используете? – Freddy

ответ

0

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

0

Я хотел бы использовать регулярное выражение. Предполагая, что это всегда 14-значное число, и что в строке не будет никаких точно точно 14-значных цифр, это было бы легко сделать.

Существует довольно много инструментов, которые помогут вам создавать регулярные выражения, я обычно использую http://www.redfernplace.com/software-projects/regex-builder/, что позволяет легко даже без особого знания того, как они работают.

2

Я бы использовал синтаксический анализ Java DateFormat. Это позволяет вам пройти через строку, используя объект ParsePosition.

DateFormat format = new SimpleDateFormat("yyyymmddhhmmss"); 
ParsePosition pp = new ParsePosition(0); 
for (int c = 0; c < text.length(); c++) { 
    pp.setIndex(c); pp.setErrorIndex(-1); 
    Date d = format.parse(text, pp); 

    if (d != null) { 
     // Handle parsed date 

     // Only advance past the last parsed date if there was no error 
     if (pp.getErrorIndex() < 0) c = pp.getIndex() - 1; 
    } 
} 
Смежные вопросы