如果不在数字之间,则删除冒号
Remove colon if not between digits
$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"
如果您知道您的输入字符串是:
1) 以xxx:'
开头
2) 以 '
结尾
并且您需要撇号之间的所有内容,您可以将 preg_replace
与 /^xxx:'([^']*)'$/
正则表达式一起使用:
$str = "xxx:'2015-10-09 15:05'";
var_dump( preg_replace("/^xxx:'([^']*)'$/", '', $str) );
输出: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 个或多个字符。
$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"
如果您知道您的输入字符串是:
1) 以xxx:'
开头
2) 以 '
并且您需要撇号之间的所有内容,您可以将 preg_replace
与 /^xxx:'([^']*)'$/
正则表达式一起使用:
$str = "xxx:'2015-10-09 15:05'";
var_dump( preg_replace("/^xxx:'([^']*)'$/", '', $str) );
输出: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 个或多个字符。