如何用PHP提取字符串括号内的时间及正确使用trim函数?
提取字符串括号内时间的正确方法
嘿,我来帮你搞定这个问题~首先得说下,你现在用trim的思路不对哦,trim的作用是移除字符串首尾的指定字符集合,不是用来提取中间的子串,所以当前代码根本达不到你想要的效果。
下面给你两种简单靠谱的实现方式:
方法一:正则表达式(最简洁)
正则可以精准匹配括号内的内容,直接提取出你要的时间:
$string = "Updated by Carewina Almonte (04/02/2018 21:58:32)"; // 匹配括号内的所有内容 preg_match('/\((.*?)\)/', $string, $matches); if (isset($matches[1])) { echo $matches[1]; // 输出结果:04/02/2018 21:58:32 }
这里的正则/\((.*?)\)/解释下:
\(:匹配左括号(因为括号是正则特殊字符,所以加转义符)(.*?):非贪婪捕获括号内的所有内容,这部分就是我们要的时间\):匹配右括号
方法二:字符串函数组合(不用正则)
如果不想用正则,也可以用strpos找到括号的位置,再用substr截取中间内容:
$string = "Updated by Carewina Almonte (04/02/2018 21:58:32)"; // 找到左括号的位置,加1跳过左括号 $startPos = strpos($string, '(') + 1; // 找到右括号的位置 $endPos = strpos($string, ')'); // 截取从左括号后到右括号前的内容 $time = substr($string, $startPos, $endPos - $startPos); echo $time; // 输出结果:04/02/2018 21:58:32
这两种方法都能完美提取出不带括号的时间,选你觉得顺手的用就行~
内容的提问来源于stack exchange,提问作者Virgil Joseph Cruz
相关产品推荐
相关产品推荐

