$str = "xxx:'2015-10-09 15:05'";
$patterns[0] = '/:/';
$patterns[1] = '/\'/';
$patterns[2] = '/xxx/';
var_dump( preg_replace($patterns, '', $str) );
输出:string(15)“2015-10-09 1505”
但我需要字符串(16)“2015-10-09 15:05”
答案 0 :(得分:4)
如果您知道输入字符串是:
1)从xxx:'
开始
2)以'
并且您需要撇号之间的所有内容,您可以将preg_replace
与/^xxx:'([^']*)'$/
正则表达式一起使用:
$str = "xxx:'2015-10-09 15:05'";
var_dump( preg_replace("/^xxx:'([^']*)'$/", '$1', $str) );
请参阅IDEONE demo
输出:string(16) "2015-10-09 15:05"
。
或者作为替代方案,请使用matching regex:
$str = "xxx:'2015-10-09 15:05'";
if (preg_match("/(?<=')[^']+/", $str, $m)) {
var_dump( $m );
}
此处,(?<=')[^']+
将在单个撇号([^']+
)之后匹配除单个撇号((?<=')
)之外的1个或多个字符。