在字符串中查找第一个日期
Find first date in string
我有一个使用 "pdfparser" 插件解析的 pdf 文件。从页面的文本中,我需要在特定字符串(搜索字符串)之后找到第一个日期。我可以找到搜索字符串和我使用的日期提取
date_parse($string)
它可以很好地提取日期、月份,但我认为由于字符串较大(带有更多日期、数字),它没有填充正确的年份,它给出了一个甚至不存在于文档中的随机数。
有没有其他方法可以得到那个日期。以下是示例字符串。(日期后有更多日期)
Satisfaction of the mortgage from Karen Ann Lewis,a single woman to Bank of America, N.A. recorded March 4, 2004
您可以尝试以下正则表达式(以您提供的格式提取第一个日期),然后使用 parse_date()
:
$str = 'Satisfaction of the mortgage from Karen Ann Lewis,a single woman to Bank of America, N.A. recorded March 4, 2004';
preg_match("/(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\s+\d{1,2},\s+\d{4}/", $str, $matches);
var_dump( date_parse($matches[0]) );
以上输出:
array(12) {
["year"] => int(2004)
["month"] => int(3)
["day"] => int(4)
["hour"] => bool(false)
["minute"] => bool(false)
["second"] => bool(false)
["fraction"] => bool(false)
...
}
我有一个使用 "pdfparser" 插件解析的 pdf 文件。从页面的文本中,我需要在特定字符串(搜索字符串)之后找到第一个日期。我可以找到搜索字符串和我使用的日期提取
date_parse($string)
它可以很好地提取日期、月份,但我认为由于字符串较大(带有更多日期、数字),它没有填充正确的年份,它给出了一个甚至不存在于文档中的随机数。
有没有其他方法可以得到那个日期。以下是示例字符串。(日期后有更多日期)
Satisfaction of the mortgage from Karen Ann Lewis,a single woman to Bank of America, N.A. recorded March 4, 2004
您可以尝试以下正则表达式(以您提供的格式提取第一个日期),然后使用 parse_date()
:
$str = 'Satisfaction of the mortgage from Karen Ann Lewis,a single woman to Bank of America, N.A. recorded March 4, 2004';
preg_match("/(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\s+\d{1,2},\s+\d{4}/", $str, $matches);
var_dump( date_parse($matches[0]) );
以上输出:
array(12) {
["year"] => int(2004)
["month"] => int(3)
["day"] => int(4)
["hour"] => bool(false)
["minute"] => bool(false)
["second"] => bool(false)
["fraction"] => bool(false)
...
}