PHP提取字符串的一部分

Swe*_*ter 2 php string extract substr

我知道有很多关于这个的问题,但似乎没有简单的方法来做我想要的.以下面的字符串为例:

expires  Friday, December 21, 2012 @ 11:59pm ET
expires  Saturday, December 22, 2012 @ 9:59pm ET
Run Code Online (Sandbox Code Playgroud)

两个字符串都相似,但以下代码不一致:

echo substr($string, 14, 27);
Run Code Online (Sandbox Code Playgroud)

因为它输出以下内容:

Friday, December 21, 2012 @
Saturday, December 21, 2012
Run Code Online (Sandbox Code Playgroud)

显然,我不想保留@符号.有没有办法在删除"过期"和"@ ##:## pm ET"时简单地保留日期?

Exp*_*lls 5

preg_replace('/expires\s*(.*?)@/', '\1', $string);
Run Code Online (Sandbox Code Playgroud)

你也不需要使用正则表达式,但我会因为它看起来更简单.这是一个非正则表达式解决方案:

//I took 14 from you, but it seems to be 9
substr($string, 14, strpos($string, '@') - strlen($string));
Run Code Online (Sandbox Code Playgroud)