从大字符串提取日期
答
+0
我不认为'扫描仪'“有”日期。 – 2010-05-02 13:40:57
答
正则表达式应该努力抓住可能的子 - 那么一些理智的逻辑测试日期的任何其他有效性
答
我会使用一个正则表达式。假设它总是一个14位数的数字,并且在字符串中不会有其他14位长的数字,这很容易做到。
有很多工具可以帮助您构建正则表达式,我通常使用http://www.redfernplace.com/software-projects/regex-builder/,即使对它们的工作方式没有太多的了解,它也很容易实现。
答
我会使用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;
}
}
您使用哪种语言? – Freddy 2010-05-02 13:22:03