如何用正则表达式重制时区?

时间:2017-08-09 11:58:07

标签: php regex timezone preg-replace

在我的项目中,我通过id找到时区。

以下是一个例子:

(GMT+07:00) Indian, Christmas

如何让它看起来像这样:

Indian\Christmas

有正则表达式吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:1)将()替换为空字符串"",2)将,替换为\

$string = '(GMT+07:00) Indian, Christmas';
$string = preg_replace("/\([^)]+\)/","",$string);// 'Indian, Christmas'
$string = preg_replace("/\, +\)/","\\",$string);// 'Indian\Christmas' 

答案 1 :(得分:0)

单个preg_replace()电话会完成这项工作。我的模式和替换将匹配整个字符串,并将其替换为将由\连接在一起的第一个和第二个捕获组。

代码:(PHP Demo

$input='(GMT+07:00) Indian, Christmas';
echo preg_replace('/\S+ ([^,]+), (.+)/','$1\\\$2','(GMT+07:00) Indian, Christmas');
// output: Indian\Christmas

以下是Pattern Demo

这可以通过多种方式完成。如果你喜欢非正则表达式方法,这里有一个利用每个字符串前面的静态长度的方法:

echo str_replace(', ','\\',substr($input,12));  // same output