我遇到以下问题。
在Wordpress中,我正在网站上输出类别。在此输出中,它们给出以下值:
Category:1
现在,我有以下代码删除了该代码:
$resultx = " " . rgar( $entry, '49' ) ."";
$resultx_ = preg_replace('/\d/' , '', $resultx );
但是当我添加以下规则时:
$resultx_ = preg_replace('/:/' , '', $resultx );
它将删除:
并离开1
。
有人知道如何解决吗?
答案 0 :(得分:1)
如果您只想去除最后的冒号和数字,请使用以下命令:
$resultx = "Category:1";
$resultx = preg_replace('/:\d*$/' , '', $resultx );
echo $resultx;
Category
答案 1 :(得分:1)
第二个_
调用的草堆上的preg_replace
丢失了,因此您返回到原始字符串并绕过了数字替换。要纠正此问题,请执行以下操作:
$resultx = 'Category:1';
$resultx_ = preg_replace('/\d/' , '', $resultx);
$resultx_ = preg_replace('/:/' , '', $resultx_);
但是您可以在一个正则表达式中进行:
和数字替换:
$resultx_ = preg_replace('/[:\d]*/' , '', $resultx);
您还可以将数字和冒号替换为str_replace
:
$resultx_ = str_replace(array_merge(range(0,9), array(':')), '', $resultx);
或rtrim
(如果您只希望从头开始替换它们)。
$resultx_ = rtrim($resultx, implode(range(0,9)) . ':');
如果模式正好是:
,则使用above正则表达式进行编号。