我有一个这样的字符串:
some text August 22, 2016
我只想得到日期- august 22, 2016
.
日期总是在字符串的末尾。
我试过这样做…但是没有成功……
$date2 = preg_match('/'b(.*?)'b&'/'d{2},'b'/'d{4}$/', $string, $date2);
/'b(.*?)'b&'/'d{2},'b'/'d{4}$/
您可以使用
'~'p{L}+'s*'d{2},'s*'d{4}$~'
查看regex演示
:
-
'p{L}+
- 1个或多个字母 -
's*
- 0+空白 -
'd{2}
- 2位 -
,
-逗号 -
's*
- 0+ whitespaces -
'd{4}
- 4位 -
$
-字符串结束
请注意,为了进一步精确地执行此操作,您可能需要将'p{L}
替换为枚举所有月份的替代组,例如可以进一步改进/增强的(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|Jule?|Aug(?:ust)?|Sep(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)
。如果只匹配第20世纪和第21世纪,可以将'd{4}
替换为(?:20|19)'d{2}
。